<template>
  <div class="page_root" data-page-name="关联任务" data-page-identification="b_ocj3wys49i">
    <a-spin :spinning="pageLoading.loading" :tip="pageLoading.tip">
      <!-- begin vid_7skj30giwx 编辑绩效权重 -->
      <a-modal
        class="vid_7skj30giwx"
        v-model:visible="vid_7skj30giwx_props.visible"
        :title="'编辑绩效权重'"
        :maskClosable="false"
        :centered="true"
        @cancel="handle_vid_7skj30giwx_cancel"
        @ok="handle_vid_7skj30giwx_ok"
      >
        <!-- begin vid_f34g16po1t 表单容器_m5x2kq3q5y -->
        <a-form ref="vid_f34g16po1t_ref" class="vid_f34g16po1t" :model="n_hsun225haw" :formModel="vid_f34g16po1t_props.formModel">
          <!-- begin vid_8mi6boajj5 表单项容器_hzttlgixky -->
          <a-form-item name="s_t7ntcgo1t8" :rules="n_hsun225haw_rules[`s_t7ntcgo1t8`]" class="vid_8mi6boajj5" :label-col='{"span":4}' :wrapper-col='{"span":20}'>
            <!-- begin vid_rxwgqw34u0 输入框_tlpnfufjm9 -->
            <a-input class="vid_rxwgqw34u0" v-model:value="n_hsun225haw.s_t7ntcgo1t8" :placeholder="'请输入'"> </a-input>
            <!-- end vid_rxwgqw34u0 输入框_tlpnfufjm9 -->
            <template #label>
              <!-- begin vid_c9sb7jzrcn 编辑分数 -->
              <span class="vid_c9sb7jzrcn"> 编辑分数 </span>
              <!-- end vid_c9sb7jzrcn 编辑分数 -->
            </template>
          </a-form-item>
          <!-- end vid_8mi6boajj5 表单项容器_hzttlgixky -->
        </a-form>
        <!-- end vid_f34g16po1t 表单容器_m5x2kq3q5y -->
      </a-modal>
      <!-- end vid_7skj30giwx 编辑绩效权重 -->
      <!-- begin vid_ccvzbp0bky 关联任务成功_nwkzss8m6s -->
      <!-- end vid_ccvzbp0bky 关联任务成功_nwkzss8m6s -->
      <!-- begin vid_3ebfkxi9c8 关联任务失败_o4p7e4ic9x -->
      <!-- end vid_3ebfkxi9c8 关联任务失败_o4p7e4ic9x -->
      <!-- begin vid_8jh57b3x2n 取消关联成功_1wehkbl10n -->
      <!-- end vid_8jh57b3x2n 取消关联成功_1wehkbl10n -->
      <!-- begin vid_ap4b0k5n98 取消关联失败_fn4swjfpsz -->
      <!-- end vid_ap4b0k5n98 取消关联失败_fn4swjfpsz -->
      <!-- begin vid_o430gle6b6 修改任务权重成功_p4lvu0266c -->
      <!-- end vid_o430gle6b6 修改任务权重成功_p4lvu0266c -->
      <!-- begin vid_466kjipu9q 修改任务权重失败_4lq1u8zvxt -->
      <!-- end vid_466kjipu9q 修改任务权重失败_4lq1u8zvxt -->
      <!-- begin vid_g0ud1d3twj 取消关联 -->
      <a-modal
        class="vid_g0ud1d3twj"
        v-model:visible="vid_g0ud1d3twj_props.visible"
        :centered="true"
        :title="'取消关联'"
        :maskClosable="false"
        :width="320"
        @cancel="handle_vid_g0ud1d3twj_cancel"
        @ok="handle_vid_g0ud1d3twj_ok"
      >
        <!-- begin vid_fk5i6m6fqa 确认取消此关联？ -->
        <span class="vid_fk5i6m6fqa"> 确认取消此关联？ </span>
        <!-- end vid_fk5i6m6fqa 确认取消此关联？ -->
      </a-modal>
      <!-- end vid_g0ud1d3twj 取消关联 -->
      <!-- begin vid_8sju2q3nnc 关联任务 -->
      <a-modal
        class="vid_8sju2q3nnc"
        v-model:visible="vid_8sju2q3nnc_props.visible"
        :centered="true"
        :title="'关联任务'"
        :maskClosable="false"
        :width="800"
        @cancel="handle_vid_8sju2q3nnc_cancel"
        @ok="handle_vid_8sju2q3nnc_ok"
      >
        <!-- begin vid_a8kiv3qd0v case_r6j5hk1cza -->
        <div class="vid_a8kiv3qd0v" :caseValue="'1'">
          <template v-if="checkCaseCondition('1', 'EQUALS', '1')">
            <!-- begin vid_129vkc56h0 表单容器_9w4ypbvpk0 -->
            <a-form ref="vid_129vkc56h0_ref" class="vid_129vkc56h0" :model="m_ofmir5ykno" :formModel="vid_129vkc56h0_props.formModel">
              <!-- begin vid_skn79i01e2 表单项容器_wgzq0gn4u5 -->
              <a-form-item name="y_crrqp9cqeb" :rules="m_ofmir5ykno_rules[`y_crrqp9cqeb`]" class="vid_skn79i01e2" :label-col='{"span":24}' :wrapper-col='{"span":24}'>
                <!-- begin vid_i5jb7e1opg 动作列表_lm02fpqd5j -->
                <al-action-list
                  data-field-key="y_crrqp9cqeb"
                  ref="vid_i5jb7e1opg_ref"
                  class="vid_i5jb7e1opg"
                  v-model:dataSource="m_ofmir5ykno.y_crrqp9cqeb"
                  v-model:extendDataSource="vid_i5jb7e1opg_props.dataSource"
                  v-model:current="vid_i5jb7e1opg_props.current"
                  v-model:currentIndex="vid_i5jb7e1opg_props.currentIndex"
                >
                  <template #default="vid_i5jb7e1opg_dataItem">
                    <!-- begin vid_l0cqujvcwo 布局容器_36j1sifzd7 -->
                    <div :style="{width: '100%'}">
                      <a-row :data-cycle-index="vid_i5jb7e1opg_dataItem.cycleIndex" class="vid_l0cqujvcwo" :slots="'12:12'">
                        <a-col :span="12">
                          <!-- begin vid_dfecmu6es5 表单项容器_6xwzz0ednr -->
                          <a-form-item
                            :name="setSubFormName(vid_i5jb7e1opg_dataItem,`projectCode`)"
                            :rules="m_ofmir5ykno_rules[`projectCode`]"
                            :data-cycle-index="vid_i5jb7e1opg_dataItem.cycleIndex"
                            class="vid_dfecmu6es5"
                            :label-col='{"span":8}'
                            :wrapper-col='{"span":16}'
                          >
                            <!-- begin vid_pxmznuc4ce projectName下拉框_egvxgxh5an -->
                            <a-select
                              :data-cycle-index="vid_i5jb7e1opg_dataItem.cycleIndex"
                              class="vid_pxmznuc4ce"
                              :getPopupContainer="(node) => node.parentNode"
                              v-model:value="vid_i5jb7e1opg_dataItem.dataItem.projectCode"
                              :allowClear="true"
                              :showSearch="true"
                              :filterOption="false"
                              :showArrow="true"
                              :placeholder="'请选择'"
                              :selected="vid_pxmznuc4ce_props.selected"
                              :searchValue="vid_pxmznuc4ce_props.searchValue"
                              :options="vid_pxmznuc4ce_options()"
                              @focus="handle_vid_pxmznuc4ce_focus"
                              @change="handle_vid_pxmznuc4ce_change"
                              @search="handle_vid_pxmznuc4ce_search"
                            >
                            </a-select>
                            <!-- end vid_pxmznuc4ce projectName下拉框_egvxgxh5an -->
                            <template #label>
                              <!-- begin vid_zgp1p37sel 简单文本_yvj9y6cr7p -->
                              <span :data-cycle-index="vid_i5jb7e1opg_dataItem.cycleIndex" class="vid_zgp1p37sel"> 项目代号 </span>
                              <!-- end vid_zgp1p37sel 简单文本_yvj9y6cr7p -->
                            </template>
                          </a-form-item>
                          <!-- end vid_dfecmu6es5 表单项容器_6xwzz0ednr -->
                        </a-col>
                        <a-col :span="12">
                          <!-- begin vid_tkwjpxxq97 表单项容器_qa6yffqtto -->
                          <a-form-item
                            :name="setSubFormName(vid_i5jb7e1opg_dataItem,`projectPhase`)"
                            :rules="m_ofmir5ykno_rules[`projectPhase`]"
                            :data-cycle-index="vid_i5jb7e1opg_dataItem.cycleIndex"
                            class="vid_tkwjpxxq97"
                            :label-col='{"span":8}'
                            :wrapper-col='{"span":16}'
                          >
                            <!-- begin vid_wm7lfb1b23 milepost下拉框_2hsacd8xyz -->
                            <a-select
                              :data-cycle-index="vid_i5jb7e1opg_dataItem.cycleIndex"
                              class="vid_wm7lfb1b23"
                              :getPopupContainer="(node) => node.parentNode"
                              v-model:value="vid_i5jb7e1opg_dataItem.dataItem.projectPhase"
                              :allowClear="true"
                              :showSearch="true"
                              :filterOption="false"
                              :showArrow="true"
                              :placeholder="'请选择'"
                              :selected="vid_wm7lfb1b23_props.selected"
                              :searchValue="vid_wm7lfb1b23_props.searchValue"
                              :options="vid_wm7lfb1b23_options()"
                              @focus="handle_vid_wm7lfb1b23_focus"
                              @change="handle_vid_wm7lfb1b23_change"
                              @search="handle_vid_wm7lfb1b23_search"
                            >
                            </a-select>
                            <!-- end vid_wm7lfb1b23 milepost下拉框_2hsacd8xyz -->
                            <template #label>
                              <!-- begin vid_bir4fuysl1 简单文本_xwnhufgpcd -->
                              <span :data-cycle-index="vid_i5jb7e1opg_dataItem.cycleIndex" class="vid_bir4fuysl1"> 项目阶段 </span>
                              <!-- end vid_bir4fuysl1 简单文本_xwnhufgpcd -->
                            </template>
                          </a-form-item>
                          <!-- end vid_tkwjpxxq97 表单项容器_qa6yffqtto -->
                        </a-col>
                      </a-row>
                    </div>
                    <!-- end vid_l0cqujvcwo 布局容器_36j1sifzd7 -->
                    <!-- begin vid_pd0sxoeg9q 布局容器_mh5xw90ggj -->
                    <div :style="{width: '100%'}">
                      <a-row :data-cycle-index="vid_i5jb7e1opg_dataItem.cycleIndex" class="vid_pd0sxoeg9q" :slots="'12:12'">
                        <a-col :span="12">
                          <!-- begin vid_o4fbt481no 表单项容器_ygpk27ishz -->
                          <a-form-item
                            :name="setSubFormName(vid_i5jb7e1opg_dataItem,`taskId`)"
                            :rules="m_ofmir5ykno_rules[`taskId`]"
                            :data-cycle-index="vid_i5jb7e1opg_dataItem.cycleIndex"
                            class="vid_o4fbt481no"
                            :label-col='{"span":8}'
                            :wrapper-col='{"span":16}'
                          >
                            <!-- begin vid_4cik2gcicw 下拉框_0t5kp8qsek -->
                            <a-select
                              :data-cycle-index="vid_i5jb7e1opg_dataItem.cycleIndex"
                              class="vid_4cik2gcicw"
                              :getPopupContainer="(node) => node.parentNode"
                              v-model:value="vid_i5jb7e1opg_dataItem.dataItem.taskId"
                              :allowClear="true"
                              :showSearch="true"
                              :filterOption="false"
                              :showArrow="true"
                              :placeholder="'请选择'"
                              :selected="vid_4cik2gcicw_props.selected"
                              :searchValue="vid_4cik2gcicw_props.searchValue"
                              :options="vid_4cik2gcicw_options()"
                              @focus="handle_vid_4cik2gcicw_focus"
                              @change="handle_vid_4cik2gcicw_change"
                              @search="handle_vid_4cik2gcicw_search"
                            >
                            </a-select>
                            <!-- end vid_4cik2gcicw 下拉框_0t5kp8qsek -->
                            <template #label>
                              <!-- begin vid_mug8n4gwgw 简单文本_9s2cpxmdy8 -->
                              <span :data-cycle-index="vid_i5jb7e1opg_dataItem.cycleIndex" class="vid_mug8n4gwgw"> 任务名称 </span>
                              <!-- end vid_mug8n4gwgw 简单文本_9s2cpxmdy8 -->
                            </template>
                          </a-form-item>
                          <!-- end vid_o4fbt481no 表单项容器_ygpk27ishz -->
                        </a-col>
                        <a-col :span="12">
                          <!-- begin vid_0qmz98x6yb 表单项容器_zvl40ttzc4 -->
                          <a-form-item
                            :name="setSubFormName(vid_i5jb7e1opg_dataItem,`taskPerformanceWeight`)"
                            :rules="m_ofmir5ykno_rules[`taskPerformanceWeight`]"
                            :data-cycle-index="vid_i5jb7e1opg_dataItem.cycleIndex"
                            class="vid_0qmz98x6yb"
                            :label-col='{"span":8}'
                            :wrapper-col='{"span":16}'
                          >
                            <!-- begin vid_6o0wxcm1te 数字输入框_528rul3udw -->
                            <a-input-number :data-cycle-index="vid_i5jb7e1opg_dataItem.cycleIndex" class="vid_6o0wxcm1te" v-model:value="vid_i5jb7e1opg_dataItem.dataItem.taskPerformanceWeight">
                            </a-input-number>
                            <!-- end vid_6o0wxcm1te 数字输入框_528rul3udw -->
                            <template #label>
                              <!-- begin vid_xl1pgs9kqv 简单文本_hutp5p71e5 -->
                              <span :data-cycle-index="vid_i5jb7e1opg_dataItem.cycleIndex" class="vid_xl1pgs9kqv"> 绩效权重 </span>
                              <!-- end vid_xl1pgs9kqv 简单文本_hutp5p71e5 -->
                            </template>
                          </a-form-item>
                          <!-- end vid_0qmz98x6yb 表单项容器_zvl40ttzc4 -->
                        </a-col>
                      </a-row>
                    </div>
                    <!-- end vid_pd0sxoeg9q 布局容器_mh5xw90ggj -->
                    <!-- begin vid_04kmbdnqep 容器_2rsi8qgnbb -->
                    <al-box :data-cycle-index="vid_i5jb7e1opg_dataItem.cycleIndex" class="vid_04kmbdnqep"> </al-box>
                    <!-- end vid_04kmbdnqep 容器_2rsi8qgnbb -->
                  </template>
                </al-action-list>
                <!-- end vid_i5jb7e1opg 动作列表_lm02fpqd5j -->
                <template #label>
                  <!-- begin vid_k60huuvgs4 case_2a98gtwz45 -->
                  <div class="vid_k60huuvgs4">
                    <template v-if="true"> </template>
                  </div>
                  <!-- end vid_k60huuvgs4 case_2a98gtwz45 -->
                </template>
              </a-form-item>
              <!-- end vid_skn79i01e2 表单项容器_wgzq0gn4u5 -->
            </a-form>
            <!-- end vid_129vkc56h0 表单容器_9w4ypbvpk0 -->
          </template>
          <template v-else>
            <!-- begin vid_ire2936uld 表单容器_ydax0kda9u -->
            <a-form class="vid_ire2936uld" :model="r_jf7qfxldqo" :formModel="vid_ire2936uld_props.formModel">
              <!-- begin vid_gq6bokj3ta 表单项容器_tjgdxz5dnn -->
              <a-form-item name="g_0miffjiw5a" :rules="r_jf7qfxldqo_rules[`g_0miffjiw5a`]" class="vid_gq6bokj3ta" :label-col='{"span":24}' :wrapper-col='{"span":24}'>
                <!-- begin vid_gi3yf85pjy 动作列表_t212la2tv9 -->
                <al-action-list
                  data-field-key="g_0miffjiw5a"
                  class="vid_gi3yf85pjy"
                  v-model:dataSource="r_jf7qfxldqo.g_0miffjiw5a"
                  v-model:extendDataSource="vid_gi3yf85pjy_props.dataSource"
                  v-model:current="vid_gi3yf85pjy_props.current"
                  v-model:currentIndex="vid_gi3yf85pjy_props.currentIndex"
                >
                  <template #default="vid_gi3yf85pjy_dataItem">
                    <!-- begin vid_qsw7ex0jg7 布局容器_zen4nrg97v -->
                    <div :style="{width: '100%'}">
                      <a-row :data-cycle-index="vid_gi3yf85pjy_dataItem.cycleIndex" class="vid_qsw7ex0jg7" :slots="'12:12'">
                        <a-col :span="12">
                          <!-- begin vid_lyc7jrvrsc 表单项容器_94wlbhes4a -->
                          <a-form-item
                            :name="setSubFormName(vid_gi3yf85pjy_dataItem,`p_0auuvgns9c`)"
                            :rules="r_jf7qfxldqo_rules[`p_0auuvgns9c`]"
                            :data-cycle-index="vid_gi3yf85pjy_dataItem.cycleIndex"
                            class="vid_lyc7jrvrsc"
                            :label-col='{"span":8}'
                            :wrapper-col='{"span":16}'
                          >
                            <!-- begin vid_2oqzyg58en 下拉框_5uyvjiokm5 -->
                            <a-select
                              :data-cycle-index="vid_gi3yf85pjy_dataItem.cycleIndex"
                              class="vid_2oqzyg58en"
                              :getPopupContainer="(node) => node.parentNode"
                              v-model:value="vid_2oqzyg58en_props.value"
                              :filterOption="false"
                              :showArrow="true"
                              :placeholder="'请选择'"
                              :selected="vid_2oqzyg58en_props.selected"
                              :searchValue="vid_2oqzyg58en_props.searchValue"
                              :options="vid_2oqzyg58en_options()"
                              @change="handle_vid_2oqzyg58en_change"
                              @search="handle_vid_2oqzyg58en_search"
                            >
                            </a-select>
                            <!-- end vid_2oqzyg58en 下拉框_5uyvjiokm5 -->
                            <template #label>
                              <!-- begin vid_aqw6miqfk5 简单文本_zyb5rl9ogq -->
                              <span :data-cycle-index="vid_gi3yf85pjy_dataItem.cycleIndex" class="vid_aqw6miqfk5"> 项目阶段 </span>
                              <!-- end vid_aqw6miqfk5 简单文本_zyb5rl9ogq -->
                            </template>
                          </a-form-item>
                          <!-- end vid_lyc7jrvrsc 表单项容器_94wlbhes4a -->
                        </a-col>
                        <a-col :span="12">
                          <!-- begin vid_n5ukgjyjls 表单项容器_0gled5lsn4 -->
                          <a-form-item
                            :name="setSubFormName(vid_gi3yf85pjy_dataItem,`y_r921w1nh7c`)"
                            :rules="r_jf7qfxldqo_rules[`y_r921w1nh7c`]"
                            :data-cycle-index="vid_gi3yf85pjy_dataItem.cycleIndex"
                            class="vid_n5ukgjyjls"
                            :label-col='{"span":8}'
                            :wrapper-col='{"span":16}'
                          >
                            <!-- begin vid_st1r27s90r 下拉框_5ia356jjoq -->
                            <a-select
                              :data-cycle-index="vid_gi3yf85pjy_dataItem.cycleIndex"
                              class="vid_st1r27s90r"
                              :getPopupContainer="(node) => node.parentNode"
                              v-model:value="vid_st1r27s90r_props.value"
                              :filterOption="false"
                              :showArrow="true"
                              :placeholder="'请选择'"
                              :selected="vid_st1r27s90r_props.selected"
                              :searchValue="vid_st1r27s90r_props.searchValue"
                              :options="vid_st1r27s90r_options()"
                              @change="handle_vid_st1r27s90r_change"
                              @search="handle_vid_st1r27s90r_search"
                            >
                            </a-select>
                            <!-- end vid_st1r27s90r 下拉框_5ia356jjoq -->
                            <template #label>
                              <!-- begin vid_of8ftsyje3 简单文本_svsfk997ad -->
                              <span :data-cycle-index="vid_gi3yf85pjy_dataItem.cycleIndex" class="vid_of8ftsyje3"> 任务名称 </span>
                              <!-- end vid_of8ftsyje3 简单文本_svsfk997ad -->
                            </template>
                          </a-form-item>
                          <!-- end vid_n5ukgjyjls 表单项容器_0gled5lsn4 -->
                        </a-col>
                      </a-row>
                    </div>
                    <!-- end vid_qsw7ex0jg7 布局容器_zen4nrg97v -->
                    <!-- begin vid_289u0m5jnf 布局容器_gsss0h06br -->
                    <div :style="{width: '100%'}">
                      <a-row :data-cycle-index="vid_gi3yf85pjy_dataItem.cycleIndex" class="vid_289u0m5jnf" :slots="'12:12'">
                        <a-col :span="12">
                          <!-- begin vid_rerfxi8xj3 表单项容器_k7q661qv6e -->
                          <a-form-item
                            :name="setSubFormName(vid_gi3yf85pjy_dataItem,`w_7zdko87mkj`)"
                            :rules="r_jf7qfxldqo_rules[`w_7zdko87mkj`]"
                            :data-cycle-index="vid_gi3yf85pjy_dataItem.cycleIndex"
                            class="vid_rerfxi8xj3"
                            :label-col='{"span":8}'
                            :wrapper-col='{"span":16}'
                          >
                            <!-- begin vid_fsrhnl2ebb 下拉框_wuyzwl116b -->
                            <a-select
                              :data-cycle-index="vid_gi3yf85pjy_dataItem.cycleIndex"
                              class="vid_fsrhnl2ebb"
                              :getPopupContainer="(node) => node.parentNode"
                              v-model:value="vid_fsrhnl2ebb_props.value"
                              :showSearch="true"
                              :filterOption="false"
                              :showArrow="true"
                              :placeholder="'请输入或选择'"
                              :selected="vid_fsrhnl2ebb_props.selected"
                              :searchValue="vid_fsrhnl2ebb_props.searchValue"
                              :options="vid_fsrhnl2ebb_options()"
                              @change="handle_vid_fsrhnl2ebb_change"
                              @search="handle_vid_fsrhnl2ebb_search"
                            >
                            </a-select>
                            <!-- end vid_fsrhnl2ebb 下拉框_wuyzwl116b -->
                            <template #label>
                              <!-- begin vid_hb4e997f68 简单文本_jzqb5sc08s -->
                              <span :data-cycle-index="vid_gi3yf85pjy_dataItem.cycleIndex" class="vid_hb4e997f68"> 绩效权重 </span>
                              <!-- end vid_hb4e997f68 简单文本_jzqb5sc08s -->
                            </template>
                          </a-form-item>
                          <!-- end vid_rerfxi8xj3 表单项容器_k7q661qv6e -->
                        </a-col>
                        <a-col :span="12"> </a-col>
                      </a-row>
                    </div>
                    <!-- end vid_289u0m5jnf 布局容器_gsss0h06br -->
                    <!-- begin vid_nd8uzxmzpd 容器_s4boz97crs -->
                    <al-box :data-cycle-index="vid_gi3yf85pjy_dataItem.cycleIndex" class="vid_nd8uzxmzpd"> </al-box>
                    <!-- end vid_nd8uzxmzpd 容器_s4boz97crs -->
                  </template>
                </al-action-list>
                <!-- end vid_gi3yf85pjy 动作列表_t212la2tv9 -->
              </a-form-item>
              <!-- end vid_gq6bokj3ta 表单项容器_tjgdxz5dnn -->
            </a-form>
            <!-- end vid_ire2936uld 表单容器_ydax0kda9u -->
          </template>
        </div>
        <!-- end vid_a8kiv3qd0v case_r6j5hk1cza -->
      </a-modal>
      <!-- end vid_8sju2q3nnc 关联任务 -->
      <!-- begin vid_72tpnta5ol 面包屑_oyj3e8e536 -->
      <a-breadcrumb class="vid_72tpnta5ol" @click="handle_vid_72tpnta5ol_click" style="word-break: break-word">
        <a-breadcrumb-item v-for="(item, index) in vid_72tpnta5ol_props_tabConfig" :key="index" @click="handleBreadcrumbJump(router, item)" href="">
          <template v-if="vid_72tpnta5ol_props.rt_showIcon">
            <span v-if="/^(https?:|mailto:|tel:|data:image)/.test(item.icon)" role="img" class="anticon"><embed style="width: 1em;height:1em;" :src="item.icon" /></span>
            <component v-else :is="item.icon" />
          </template>
          {{item.title}}
        </a-breadcrumb-item>
      </a-breadcrumb>
      <!-- end vid_72tpnta5ol 面包屑_oyj3e8e536 -->
      <!-- begin vid_2z31bh9h0y 容器_x14edb6kpc -->
      <al-box class="vid_2z31bh9h0y">
        <!-- begin vid_lhp8mlfm29 布局容器_yfgwx9me9f -->
        <div :style="{width: '100%'}">
          <a-row class="vid_lhp8mlfm29" :slots="'9:6:9'">
            <a-col :span="9">
              <!-- begin vid_a4j7ai6v1h 关联任务 -->
              <span class="vid_a4j7ai6v1h"> 关联任务 </span>
              <!-- end vid_a4j7ai6v1h 关联任务 -->
            </a-col>
            <a-col :span="6">
              <!-- begin vid_dwlpdy2qr0 布局容器_vhw97isnz5 -->
              <div :style="{width: '100%'}">
                <a-row class="vid_dwlpdy2qr0" :slots="'12:12'">
                  <a-col :span="12">
                    <!-- begin vid_b9ustx2nh9 简单文本_80m4gk7ye5 -->
                    <span class="vid_b9ustx2nh9"> 目标权重分数： </span>
                    <!-- end vid_b9ustx2nh9 简单文本_80m4gk7ye5 -->
                    <!-- begin vid_2rtb2yalkx 简单文本_tk16t366e7 -->
                    <span class="vid_2rtb2yalkx">
                      {{ renderStringInTemplate(vid_2rtb2yalkx_props.rt_text) }}
                    </span>
                    <!-- end vid_2rtb2yalkx 简单文本_tk16t366e7 -->
                    <!-- begin vid_gofxnxsglu 简单文本_0ekkkd854p -->
                    <span class="vid_gofxnxsglu"> 分 </span>
                    <!-- end vid_gofxnxsglu 简单文本_0ekkkd854p -->
                  </a-col>
                  <a-col :span="12">
                    <!-- begin vid_8j1i9r7u0z 当前任务总分： -->
                    <span class="vid_8j1i9r7u0z"> 当前任务总分： </span>
                    <!-- end vid_8j1i9r7u0z 当前任务总分： -->
                    <!-- begin vid_5es2voho56 40 -->
                    <span class="vid_5es2voho56">
                      {{ renderStringInTemplate(vid_5es2voho56_props.rt_text) }}
                    </span>
                    <!-- end vid_5es2voho56 40 -->
                    <!-- begin vid_hco4q13sig 分 -->
                    <span class="vid_hco4q13sig"> 分 </span>
                    <!-- end vid_hco4q13sig 分 -->
                  </a-col>
                </a-row>
              </div>
              <!-- end vid_dwlpdy2qr0 布局容器_vhw97isnz5 -->
            </a-col>
            <a-col :span="9">
              <!-- begin vid_6h6jjd4ulb 容器_bscmjbsn7r -->
              <al-box class="vid_6h6jjd4ulb">
                <!-- begin vid_5anl8ulhn3 关联任务 -->
                <a-button v-if="false" class="vid_5anl8ulhn3" @click="handle_vid_5anl8ulhn3_click">
                  <template #icon><block-outlined /></template>

                  关联任务
                </a-button>
                <!-- end vid_5anl8ulhn3 关联任务 -->
                <!-- begin vid_qesp4irx4y 导入任务 -->
                <a-button class="vid_qesp4irx4y" @click="handle_vid_qesp4irx4y_click">
                  <template #icon><login-outlined /></template>

                  导入任务
                </a-button>
                <!-- end vid_qesp4irx4y 导入任务 -->
              </al-box>
              <!-- end vid_6h6jjd4ulb 容器_bscmjbsn7r -->
            </a-col>
          </a-row>
        </div>
        <!-- end vid_lhp8mlfm29 布局容器_yfgwx9me9f -->
        <!-- begin vid_qhjexuuu0s 容器_dl0sspcdhs -->
        <al-box class="vid_qhjexuuu0s">
          <!-- begin vid_r67bokhyxj 月度目标： -->
          <span class="vid_r67bokhyxj"> 月度目标： </span>
          <!-- end vid_r67bokhyxj 月度目标： -->
          <!-- begin vid_54rxr313xf 月度目标：文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本 -->
          <span class="vid_54rxr313xf">
            {{ renderStringInTemplate(vid_54rxr313xf_props.rt_text) }}
          </span>
          <!-- end vid_54rxr313xf 月度目标：文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本 -->
        </al-box>
        <!-- end vid_qhjexuuu0s 容器_dl0sspcdhs -->
        <!-- begin vid_cfl4hoen6j 容器_c3juqoahna -->
        <al-box class="vid_cfl4hoen6j">
          <!-- begin vid_1pgbsy9bqc 表格_nzz0wm54q6 -->
          <!-- 表格_nzz0wm54q6 -->
          <a-table
            class="vid_1pgbsy9bqc"
            :bordered="true"
            :sorter="vid_1pgbsy9bqc_props.sorter"
            :editRowSaveLoading="vid_1pgbsy9bqc_props.editRowSaveLoading"
            :currentRow="vid_1pgbsy9bqc_props.currentRow"
            :selectedRowList="vid_1pgbsy9bqc_props.selectedRowList"
            :data-source="vid_1pgbsy9bqc_options()"
            @change="handle_vid_1pgbsy9bqc_change"
            :columns="vid_1pgbsy9bqc_columns"
            :pagination="false"
            row-key="id"
            @resizeColumn="(w, col) => handleResizeColumn(w, col, 'vid_1pgbsy9bqc')"
            sticky
            :scroll="{ x: 'max-content', y: '600px', scrollToFirstRowOnChange: true, }"
            :row-class-name="(_record, index) => (index % 2 === 1 ? 'table-striped-even' : 'table-striped-odd')"
          >
            <template #headerCell="{ title, column }">
              <span :style="textTruncate(column.width)">
                {{ title }}
                <template v-if="column.headerComment">
                  <img
                    v-if="
            column.headerCommentConfig.iconType === 'CUSTOM' ||
            (column.headerCommentConfig.icon &&
              column.headerCommentConfig.icon.indexOf('base64') !== -1)
          "
                    :src="column.headerCommentConfig.icon"
                    style="width: 14px;"
                    alt="icon"
                    :title="column.headerCommentConfig.comment"
                  />
                  <component v-else :is="column.headerCommentConfig.icon" :title="column.headerCommentConfig.comment" />
                </template>
              </span>
            </template>
            <template #bodyCell="{ text, column, record, index }">
              <!-- 操作列 -->
              <div v-if="column.dataIndex === 'vid_1pgbsy9bqc_operation'" class="operation-cell">
                <!-- 默认分组 -->
                <span>
                  <a-button type="link" @click="handle_vid_1pgbsy9bqc_clickBtn_40zfwb3kea(record)">取消关联</a-button>
                  <a-button type="link" @click="handle_vid_1pgbsy9bqc_clickBtn_agyda2glki(record)">编辑</a-button>
                </span>
              </div>

              <!-- 序号列 -->
              <template v-if="column && column.dataIndex === 'vid_1pgbsy9bqc_serialNumber'">
                {{ index + 1 }}
              </template>
              <!-- {"type":"value","dataType":"STRING","link":"","value":"项目代号"} 列内容 -->
              <template v-if="column.dataIndex === 'projectCode' && !column.customRender">
                <text-table-cell
                  :rowData="record"
                  :conditionValueMap="vid_1pgbsy9bqc_props.boundaryValueMap"
                  :dataSource="vid_1pgbsy9bqc_props.contentDataSource[column.dataIndex]"
                  :columnsConfig="column"
                  :value="text"
                />
              </template>
              <!-- {"type":"value","dataType":"STRING","link":"","value":"项目阶段"} 列内容 -->
              <template v-if="column.dataIndex === 'projectPhase' && !column.customRender">
                <text-table-cell
                  :rowData="record"
                  :conditionValueMap="vid_1pgbsy9bqc_props.boundaryValueMap"
                  :dataSource="vid_1pgbsy9bqc_props.contentDataSource[column.dataIndex]"
                  :columnsConfig="column"
                  :value="text"
                />
              </template>
              <!-- {"type":"value","dataType":"STRING","link":"","value":"任务名称"} 列内容 -->
              <template v-if="column.dataIndex === 'taskName' && !column.customRender">
                <text-table-cell
                  :rowData="record"
                  :conditionValueMap="vid_1pgbsy9bqc_props.boundaryValueMap"
                  :dataSource="vid_1pgbsy9bqc_props.contentDataSource[column.dataIndex]"
                  :columnsConfig="column"
                  :value="text"
                />
              </template>
              <!-- {"type":"value","dataType":"STRING","link":"","value":"任务负责人"} 列内容 -->
              <template v-if="column.dataIndex === 'taskLeader' && !column.customRender">
                <text-table-cell
                  :rowData="record"
                  :conditionValueMap="vid_1pgbsy9bqc_props.boundaryValueMap"
                  :dataSource="vid_1pgbsy9bqc_props.contentDataSource[column.dataIndex]"
                  :columnsConfig="column"
                  :value="text"
                />
              </template>
              <!-- {"type":"value","dataType":"STRING","link":"","value":"任务参与人"} 列内容 -->
              <template v-if="column.dataIndex === 'taskParticipants' && !column.customRender">
                <text-table-cell
                  :rowData="record"
                  :conditionValueMap="vid_1pgbsy9bqc_props.boundaryValueMap"
                  :dataSource="vid_1pgbsy9bqc_props.contentDataSource[column.dataIndex]"
                  :columnsConfig="column"
                  :value="text"
                />
              </template>
              <!-- {"type":"value","dataType":"STRING","link":"","value":"任务状态"} 列内容 -->
              <template v-if="column.dataIndex === 'taskStatus' && !column.customRender">
                <text-table-cell
                  :rowData="record"
                  :conditionValueMap="vid_1pgbsy9bqc_props.boundaryValueMap"
                  :dataSource="vid_1pgbsy9bqc_props.contentDataSource[column.dataIndex]"
                  :columnsConfig="column"
                  :value="text"
                />
              </template>
              <!-- {"type":"value","dataType":"STRING","link":"","value":"任务绩效权重"} 列内容 -->
              <template v-if="column.dataIndex === 'taskPerformanceWeight' && !column.customRender">
                <text-table-cell
                  :rowData="record"
                  :conditionValueMap="vid_1pgbsy9bqc_props.boundaryValueMap"
                  :dataSource="vid_1pgbsy9bqc_props.contentDataSource[column.dataIndex]"
                  :columnsConfig="column"
                  :value="text"
                />
              </template>
              <!-- {"type":"value","dataType":"STRING","link":"","value":"id"} 列内容 -->
              <template v-if="column.dataIndex === 'id' && !column.customRender">
                <text-table-cell
                  :rowData="record"
                  :conditionValueMap="vid_1pgbsy9bqc_props.boundaryValueMap"
                  :dataSource="vid_1pgbsy9bqc_props.contentDataSource[column.dataIndex]"
                  :columnsConfig="column"
                  :value="text"
                />
              </template>
            </template>
          </a-table>
          <!-- end vid_1pgbsy9bqc 表格_nzz0wm54q6 -->
        </al-box>
        <!-- end vid_cfl4hoen6j 容器_c3juqoahna -->
      </al-box>
      <!-- end vid_2z31bh9h0y 容器_x14edb6kpc -->
    </a-spin>
  </div>
</template>
<script setup>
  import {
  h, ref, reactive, toRaw, markRaw, watch, computed,
  onBeforeMount, onMounted, onBeforeUnmount, onUnmounted, onActivated, onDeactivated
} from "vue";
import { useRoute, useRouter } from 'vue-router';
const router = useRouter();
const route = useRoute();
import { get, post, put, del, request, requestWithHeaders } from '@/utils/http/Axios';
import { cloneDeep, isNullOrEmpty, isEmptyArr, isNullOrUnDef, localGet, isContained, isArray, isEmpty, 
  merge, getDifferenceArray, isObject, traversalTreeStructure, checkCaseCondition, renderStringInTemplate, handleBreadcrumbJump, throttle } from '@/utils/index';
import dayjs from 'dayjs';
import { getPagePcChartsDataSourceConvert } from '@/utils/chart';
import { message, notification, Modal } from 'ant-design-vue'
import { propertyFormatByNumber, propertyFormatByPercentage, propertyFormatByDate } from '@/utils/format';
/*** PUBLISH_EXEGESIS ***
import UserTableRecords from '@/model/UserTableRecords';
*** PUBLISH_EXEGESIS ***/

import TextTableCell from '@/components/page/tableCell/text.vue';
import NumberTableCell from '@/components/page/tableCell/number.vue';
import ProgressTableCell from '@/components/page/tableCell/progress.vue';
import OptionsTableCell from '@/components/page/tableCell/options.vue';
import DatePickerTableCell from '@/components/page/tableCell/datePicker.vue';
import RangePickerTableCell from '@/components/page/tableCell/rangePicker.vue';
import RangeNumberTableCell from '@/components/page/tableCell/rangeNumber.vue';
import BoolTableCell from '@/components/page/tableCell/bool.vue';

  // 获取传入的流程ID
  const props = defineProps({
    processInstanceId: {
        type: String
    }
  })
  const immediateWatch = (source, callback) => {
    watch(source, callback, {deep: true,immediate: true })
  }
  


  /* -------------------------- 属性定义 -------------------------- */

  const setTimeOutList = [];
  const pageLoading = reactive({
    loading: false,
    tip: undefined
  });

const vid_7skj30giwx_props = reactive({
      visible: false,
})

const vid_f34g16po1t_props = reactive({
      formModel: {"s_t7ntcgo1t8":""},
})

const vid_rxwgqw34u0_props = reactive({
      value: "",
})

const vid_ccvzbp0bky_props = reactive({
      show: false,
  type: "success",
  content: "关联任务成功",
  duration: 3,
})

const vid_3ebfkxi9c8_props = reactive({
      show: false,
  type: "error",
  content: undefined,
  duration: 3,
})

const vid_8jh57b3x2n_props = reactive({
      show: false,
  type: "success",
  content: "取消关联任务后，请对关联任务权重分数重新分配",
  duration: 3,
})

const vid_ap4b0k5n98_props = reactive({
      show: false,
  type: "error",
  content: undefined,
  duration: 3,
})

const vid_o430gle6b6_props = reactive({
      show: false,
  type: "success",
  content: "修改成功",
  duration: 3,
})

const vid_466kjipu9q_props = reactive({
      show: false,
  type: "error",
  content: "修改失败",
  duration: 3,
})

const vid_g0ud1d3twj_props = reactive({
      visible: false,
})

const vid_8sju2q3nnc_props = reactive({
      visible: false,
})

const vid_ire2936uld_props = reactive({
      formModel: {"g_0miffjiw5a":"","p_0auuvgns9c":"","y_r921w1nh7c":"","w_7zdko87mkj":""},
})

const vid_gi3yf85pjy_props = reactive({
      dataSource: [{"stage":"","partnershipOrCustomerName":"","projectCode":"","dailyContent":"","nextPlan":"","partnershipOrCustomerId":"","dailyType":"","workingHours":""}],
  current: {"stage":"","partnershipOrCustomerName":"","projectCode":"","dailyContent":"","nextPlan":"","partnershipOrCustomerId":"","dailyType":"","workingHours":""},
  currentIndex: -1,
})

const vid_2oqzyg58en_props = reactive({
      selected: {"option":{},"value":"","label":""},
  searchValue: undefined,
  value: undefined,
})

const vid_st1r27s90r_props = reactive({
      selected: {"option":{},"value":"","label":""},
  searchValue: undefined,
  value: undefined,
})

const vid_fsrhnl2ebb_props = reactive({
      selected: {"option":{},"value":"","label":""},
  searchValue: undefined,
  value: undefined,
})

const vid_129vkc56h0_props = reactive({
      formModel: {"y_crrqp9cqeb":"","projectCode":"","projectPhase":"","taskId":"","taskPerformanceWeight":""},
})

const vid_i5jb7e1opg_props = reactive({
      dataSource: [{"projectCode":"","projectPhase":"","taskId":"","taskPerformanceWeight":""}],
  current: {"projectCode":"","projectPhase":"","taskId":"","taskPerformanceWeight":""},
  currentIndex: -1,
})

const vid_pxmznuc4ce_props = reactive({
      selected: {"option":{},"value":"","label":""},
  searchValue: undefined,
  value: undefined,
})

const vid_wm7lfb1b23_props = reactive({
      selected: {"option":{},"value":"","label":""},
  searchValue: undefined,
  value: undefined,
})

const vid_4cik2gcicw_props = reactive({
      selected: {"option":{},"value":"","label":""},
  searchValue: undefined,
  value: undefined,
})

const vid_6o0wxcm1te_props = reactive({
      value: undefined,
})

const vid_72tpnta5ol_props = reactive({
      rt_showIcon: false,
})

const vid_2rtb2yalkx_props = reactive({
      rt_text: undefined,
})

const vid_5es2voho56_props = reactive({
      rt_text: undefined,
})

const vid_54rxr313xf_props = reactive({
      rt_text: undefined,
})

const vid_1pgbsy9bqc_props = reactive({
      systemSort: [],
  sorter: {},
  editRowSaveLoading: {},
  currentRow: {"projectCode":"","projectPhase":"","taskName":"","taskLeader":"","taskParticipants":"","taskStatus":"","taskPerformanceWeight":"","id":""},
  selectedRowList: {"custom1":[],"custom2":[],"custom3":[],"custom4":[],"custom5":[],"custom6":[],"custom7":[],"projectCode":[],"projectPhase":[],"taskName":[],"taskLeader":[],"taskParticipants":[],"taskStatus":[],"taskPerformanceWeight":[],"id":[]},
  totalNumber: "",
  rt_tableConfig: {"basic":{"title":"","rowKey":"id","rowSelection":false,"showSequenceNumber":false,"rowEdit":{"editText":"编辑","saveText":"保存","cancelText":"取消"}},"style":{"headerStyle":{"lintHeight":40,"borderWidth":1,"borderColor":"#D9D9D9","backgroundColor":"#3875FF","enableTextStyle":true,"fontFamily":"arial, helvetica, \"microsoft yahei\";","fontSize":14,"textWeight":"600","textColor":"#FFFFFF"},"contentStyle":{"lintHeight":40,"borderWidth":1,"borderColor":"#D9D9D9","oddLineBackColor":"#FFFFFF","evenLineBackColor":"#F8FAFC","enableContentStyle":true,"fontFamily":"arial, helvetica, \"microsoft yahei\";","fontSize":14,"textWeight":"400","textColor":"#262626"},"paginationStyle":{"size":"default","layout":"bottomRight"}},"layout":{"operationColumnFixed":"right","showHeader":true,"sticky":true},"scroll":{"x":"max-content","y":"600px","scrollToFirstRowOnChange":true},"pagination":{"enable":false,"sync":false,"current":1,"pageSize":"14","showSizeChanger":false,"pageSizeOptions":"10,20,30,40","showTotal":false,"showQuickJumper":false,"simple":false,"hideOnSinglePage":false}},
  columnList: [
      {
        dataIndex: 'projectCode',
        headerComment: false,
        title: '项目代号',
        groupTitle: '',
        ellipsis: false,
        contentAlign: 'left',
        customHeaderCell: () => ({ style: { 'text-align': 'left' } }),
        rowEdit: false,
        rowEditConditions: [],
        contentType: 'TEXT',
        contentConfig: {"format":null,"defaultStyle":null,"conditionStyle":[],"dataSourceConfig":null,"boolConfig":"collection"},
        // 使用插槽的列，设置单元格padding为0，padding样式在内容插槽中已加，以便内容插槽设置背景色时可以占满整个单元格；该样式会在计算属性生成列配置时加入customCell
        customCellStyle: { padding: 0 },
        resizable: true,
      },
      {
        dataIndex: 'projectPhase',
        headerComment: false,
        title: '项目阶段',
        groupTitle: '',
        ellipsis: false,
        contentAlign: 'left',
        customHeaderCell: () => ({ style: { 'text-align': 'left' } }),
        rowEdit: false,
        rowEditConditions: [],
        contentType: 'TEXT',
        contentConfig: {"format":null,"defaultStyle":null,"conditionStyle":[],"dataSourceConfig":null,"boolConfig":"collection"},
        // 使用插槽的列，设置单元格padding为0，padding样式在内容插槽中已加，以便内容插槽设置背景色时可以占满整个单元格；该样式会在计算属性生成列配置时加入customCell
        customCellStyle: { padding: 0 },
        resizable: true,
      },
      {
        dataIndex: 'taskName',
        headerComment: false,
        title: '任务名称',
        groupTitle: '',
        ellipsis: false,
        contentAlign: 'left',
        customHeaderCell: () => ({ style: { 'text-align': 'left' } }),
        rowEdit: false,
        rowEditConditions: [],
        contentType: 'TEXT',
        contentConfig: {"format":null,"defaultStyle":null,"conditionStyle":[],"dataSourceConfig":null,"boolConfig":"collection"},
        // 使用插槽的列，设置单元格padding为0，padding样式在内容插槽中已加，以便内容插槽设置背景色时可以占满整个单元格；该样式会在计算属性生成列配置时加入customCell
        customCellStyle: { padding: 0 },
        resizable: true,
      },
      {
        dataIndex: 'taskLeader',
        headerComment: false,
        title: '任务负责人',
        groupTitle: '',
        ellipsis: false,
        contentAlign: 'left',
        customHeaderCell: () => ({ style: { 'text-align': 'left' } }),
        rowEdit: false,
        rowEditConditions: [],
        contentType: 'TEXT',
        contentConfig: {"format":null,"defaultStyle":null,"conditionStyle":[],"dataSourceConfig":null,"boolConfig":"collection"},
        // 使用插槽的列，设置单元格padding为0，padding样式在内容插槽中已加，以便内容插槽设置背景色时可以占满整个单元格；该样式会在计算属性生成列配置时加入customCell
        customCellStyle: { padding: 0 },
        width: '120px',
        resizable: true,
      },
      {
        dataIndex: 'taskParticipants',
        headerComment: false,
        title: '任务参与人',
        groupTitle: '',
        ellipsis: false,
        contentAlign: 'left',
        customHeaderCell: () => ({ style: { 'text-align': 'left' } }),
        rowEdit: false,
        rowEditConditions: [],
        contentType: 'TEXT',
        contentConfig: {"format":null,"defaultStyle":null,"conditionStyle":[],"dataSourceConfig":null,"boolConfig":"collection"},
        // 使用插槽的列，设置单元格padding为0，padding样式在内容插槽中已加，以便内容插槽设置背景色时可以占满整个单元格；该样式会在计算属性生成列配置时加入customCell
        customCellStyle: { padding: 0 },
        width: '400px',
        resizable: true,
      },
      {
        dataIndex: 'taskStatus',
        headerComment: false,
        title: '任务状态',
        groupTitle: '',
        ellipsis: false,
        contentAlign: 'left',
        customHeaderCell: () => ({ style: { 'text-align': 'left' } }),
        rowEdit: false,
        rowEditConditions: [],
        contentType: 'TEXT',
        contentConfig: {"format":null,"defaultStyle":null,"conditionStyle":[],"dataSourceConfig":null,"boolConfig":"collection"},
        // 使用插槽的列，设置单元格padding为0，padding样式在内容插槽中已加，以便内容插槽设置背景色时可以占满整个单元格；该样式会在计算属性生成列配置时加入customCell
        customCellStyle: { padding: 0 },
        resizable: true,
      },
      {
        dataIndex: 'taskPerformanceWeight',
        headerComment: false,
        title: '任务绩效权重',
        groupTitle: '',
        ellipsis: false,
        contentAlign: 'left',
        customHeaderCell: () => ({ style: { 'text-align': 'left' } }),
        rowEdit: false,
        rowEditConditions: [],
        contentType: 'TEXT',
        contentConfig: {"format":null,"defaultStyle":null,"conditionStyle":[],"dataSourceConfig":null,"boolConfig":"collection"},
        // 使用插槽的列，设置单元格padding为0，padding样式在内容插槽中已加，以便内容插槽设置背景色时可以占满整个单元格；该样式会在计算属性生成列配置时加入customCell
        customCellStyle: { padding: 0 },
        width: '100px',
        resizable: true,
      },
      {
        dataIndex: 'vid_1pgbsy9bqc_operation',
        title: '操作',
        fixed: 'right',
      },
    ],
  // 进行行合并所需的排序规则，必须将其加到排序字段的前面，以实现合并单元格
  rowMergeSort: [],
  // 完整的排序规则：需要将行合并的排序规则和排序字段的排序规则赋给该属性；调接口时会使用其作为排序条件
  systemSort: [],
  // 条件格式需要的边界值映射：key为边界值id，value为边界值数据
  boundaryValueMap: {},
  // 表格单元格内容渲染需要的外部数据源：key为列，value为该列单元格的外部数据源配置
  contentDataSource: {},
})
// ---------------------------- 定义模型数据 ----------------------------

const n_hsun225haw = reactive({"s_t7ntcgo1t8":""})
  

const r_jf7qfxldqo = reactive({"g_0miffjiw5a":[{}]})
  

const m_ofmir5ykno = reactive({"y_crrqp9cqeb":[{}]})
  
// ============================ 定义模型数据 ============================
    

const n_hsun225haw_rules = reactive({
      s_t7ntcgo1t8: [
      { required: true, message: '请输入分数!', trigger: 'blur' },
  ],
})
    




const r_jf7qfxldqo_rules = reactive({
  
  p_0auuvgns9c: [
      { required: true, message: '表单项容器!', trigger: 'blur' },
  ],
  y_r921w1nh7c: [
      { required: true, message: '表单项容器!', trigger: 'blur' },
  ],
  w_7zdko87mkj: [
      { required: true, message: '表单项容器!', trigger: 'blur' },
  ],
})
    





const m_ofmir5ykno_rules = reactive({
  
  projectCode: [
      { required: true, message: '请选择项目代号!', trigger: 'blur' },
  ],
  projectPhase: [
      { required: true, message: '请选择项目阶段!', trigger: 'blur' },
  ],
  taskId: [
      { required: true, message: '请选择任务!', trigger: 'blur' },
  ],
  taskPerformanceWeight: [
      { required: true, message: '请输入绩效权重!', trigger: 'blur' },
  ],
})
    
       
  // 处理校验
  const setSubFormName =(parentInfo, name)=>{
    return [parentInfo.parents, parentInfo.cycleIndex, name];
  }

  
const vid_2oqzyg58en_options_raw = ref([{"value":"1","label":"option1"},{"value":"2","label":"option2"}])
    
  const vid_2oqzyg58en_options = computed(() => {
        return () => vid_2oqzyg58en_options_raw.value
      })
        

  
const vid_st1r27s90r_options_raw = ref([{"value":"1","label":"option1"},{"value":"2","label":"option2"}])
    
  const vid_st1r27s90r_options = computed(() => {
        return () => vid_st1r27s90r_options_raw.value
      })
        

  
const vid_fsrhnl2ebb_options_raw = ref([{"value":"1","label":"option1"},{"value":"2","label":"option2"}])
    
  const vid_fsrhnl2ebb_options = computed(() => {
        return () => vid_fsrhnl2ebb_options_raw.value
      })
        

  
const vid_pxmznuc4ce_options_raw = ref([])
    
  const vid_pxmznuc4ce_options = computed(() => {
    return (dataSource = vid_pxmznuc4ce_options_raw.value)=>{
      return (dataSource || []).map(item => {
        return {
          ...item,
          value: item.projectId,
      label: item.projectCode,
      disabled: !!item.disabled
        }
      })
    }
  })
        

  
const vid_wm7lfb1b23_options_raw = ref([])
    
  const vid_wm7lfb1b23_options = computed(() => {
    return (dataSource = vid_wm7lfb1b23_options_raw.value)=>{
      return (dataSource || []).map(item => {
        return {
          ...item,
          value: item.milepostId,
      label: item.milepostName,
      disabled: !!item.disabled
        }
      })
    }
  })
        

  
const vid_4cik2gcicw_options_raw = ref([])
    
  const vid_4cik2gcicw_options = computed(() => {
    return (dataSource = vid_4cik2gcicw_options_raw.value)=>{
      return (dataSource || []).map(item => {
        return {
          ...item,
          value: item.taskId,
      label: item.taskName,
      disabled: !!item.disabled
        }
      })
    }
  })
        

  
const vid_1pgbsy9bqc_options_raw = ref([])
    
  const vid_1pgbsy9bqc_options = computed(() => {
    return () => vid_1pgbsy9bqc_options_raw.value
  })
        
// 图表组件 下拉框_5uyvjiokm5 条件格式数据依赖 
const vid_2oqzyg58en_chartConditionDependencyMap = ref({
})
// 图表组件 下拉框_5ia356jjoq 条件格式数据依赖 
const vid_st1r27s90r_chartConditionDependencyMap = ref({
})
// 图表组件 下拉框_wuyzwl116b 条件格式数据依赖 
const vid_fsrhnl2ebb_chartConditionDependencyMap = ref({
})
// 图表组件 projectName下拉框_egvxgxh5an 条件格式数据依赖 
const vid_pxmznuc4ce_chartConditionDependencyMap = ref({
})
// 图表组件 milepost下拉框_2hsacd8xyz 条件格式数据依赖 
const vid_wm7lfb1b23_chartConditionDependencyMap = ref({
})
// 图表组件 下拉框_0t5kp8qsek 条件格式数据依赖 
const vid_4cik2gcicw_chartConditionDependencyMap = ref({
})
// 图表组件 表格_nzz0wm54q6 条件格式数据依赖 
const vid_1pgbsy9bqc_chartConditionDependencyMap = ref({
})
/* ========================== 属性定义 ========================== */
  

  /* -------------------------- 元素数据引用 -------------------------- */
// 组件 表单容器_m5x2kq3q5y ref 的引用
const vid_f34g16po1t_ref = ref(null);
// 组件 表单容器_9w4ypbvpk0 ref 的引用
const vid_129vkc56h0_ref = ref(null);
// 组件 动作列表_lm02fpqd5j ref 的引用
const vid_i5jb7e1opg_ref = ref(null);

/* ========================== 元素数据引用 ========================== */
  

  /* -------------------------- 页面数据 -------------------------- */

// 页面数据 查询关联任务列表
const dataConnector_conn_bhznyt7efn_response = ref();
const dataConnector_conn_bhznyt7efn = async (additionParams = {}) => {
    const exec = async () => {
      
      // 获取参数
      const params = {
        projectMonthlyGoalManagementId: pageParameter_state.id,
      relatedTaskFormList: null,
      goalWeight: null,
      projectMonthlyGoal: null
      };

      // 注入附加的参数
      try {
        merge(params, additionParams);
      } catch (error) {
        console.log(error)
      }
      // 判断加载提示
      
      // 处理URL
      let url = '/ppm/api/v2/built-in-system-ppm/pmgf/get/relatedTasks';
      // 替换url中的变量
      
      // 排除空参数  日期组件重置后的空参数是[null] 或者[undefined]
      Object.keys(params).forEach(key=>{ if(params[key] === null){ delete params[key] }else if( Object.prototype.toString.call(params[key]) === '[object Object]' ){ Object.keys(params[key]).forEach(childKey=>{ if(params[key][childKey] === null || (Array.isArray(params[key][childKey]) && params[key][childKey].length === 1 && isNullOrUnDef(params[key][childKey]?.[0]))){ delete params[key][childKey] }}) } });
      return post(url, params).then(async (resp) => {
        dataConnector_conn_bhznyt7efn_response.value = resp;
        
        return resp;
      }).catch(async (e) => {
        
        
        return Promise.reject(e);
      }).finally(async () => {
        
        
      })
    }
    
      return await exec()
    
}
  

// 页面数据 取消关联任务
const dataConnector_conn_h387uj3n4a_response = ref();
const dataConnector_conn_h387uj3n4a = async (additionParams = {}) => {
    const exec = async () => {
      
      // 获取参数
      const params = {

      };

      // 注入附加的参数
      try {
        merge(params, additionParams);
      } catch (error) {
        console.log(error)
      }
      // 判断加载提示
      
      // 处理URL
      let url = '/ppm/api/v2/built-in-system-ppm/pmgf/cancel/relatedTask/{id}';
      // 替换url中的变量
      url = url.replace('{id}', String(vid_1pgbsy9bqc_props?.currentRow.id))
      // 排除空参数  日期组件重置后的空参数是[null] 或者[undefined]
      Object.keys(params).forEach(key=>{ if(params[key] === null){ delete params[key] }else if( Object.prototype.toString.call(params[key]) === '[object Object]' ){ Object.keys(params[key]).forEach(childKey=>{ if(params[key][childKey] === null || (Array.isArray(params[key][childKey]) && params[key][childKey].length === 1 && isNullOrUnDef(params[key][childKey]?.[0]))){ delete params[key][childKey] }}) } });
      return del(url, {data: params}).then(async (resp) => {
        dataConnector_conn_h387uj3n4a_response.value = resp;
        
        return resp;
      }).catch(async (e) => {
        
        
        return Promise.reject(e);
      }).finally(async () => {
        
        
      })
    }
    
      return await exec()
    
}
  

// 页面数据 提交关联任务
const dataConnector_conn_q1hyx7sb9j_response = ref();
const dataConnector_conn_q1hyx7sb9j = async (additionParams = {}) => {
    const exec = async () => {
      
      // 获取参数
      const params = {
        projectMonthlyGoalManagementId: pageParameter_state.id,
      relatedTaskFormList: vid_i5jb7e1opg_props?.dataSource,
      goalWeight: dataConnector_conn_bhznyt7efn_response?.value?.data?.goalWeight,
      projectMonthlyGoal: null
      };

      // 注入附加的参数
      try {
        merge(params, additionParams);
      } catch (error) {
        console.log(error)
      }
      // 判断加载提示
      
      // 处理URL
      let url = '/ppm/api/v2/built-in-system-ppm/pmgf/submit/relatedTask';
      // 替换url中的变量
      
      // 排除空参数  日期组件重置后的空参数是[null] 或者[undefined]
      Object.keys(params).forEach(key=>{ if(params[key] === null){ delete params[key] }else if( Object.prototype.toString.call(params[key]) === '[object Object]' ){ Object.keys(params[key]).forEach(childKey=>{ if(params[key][childKey] === null || (Array.isArray(params[key][childKey]) && params[key][childKey].length === 1 && isNullOrUnDef(params[key][childKey]?.[0]))){ delete params[key][childKey] }}) } });
      return post(url, params).then(async (resp) => {
        dataConnector_conn_q1hyx7sb9j_response.value = resp;
        
        return resp;
      }).catch(async (e) => {
        
        
        return Promise.reject(e);
      }).finally(async () => {
        
        
      })
    }
    
      return await exec()
    
}
  

// 页面数据 获取项目阶段下拉框列表
const dataConnector_conn_72zyv6c8rc_response = ref();
const dataConnector_conn_72zyv6c8rc = async (additionParams = {}) => {
    const exec = async () => {
      
      // 获取参数
      const params = {
        projectType: null,
      projectName: null,
      projectId: vid_pxmznuc4ce_props?.selected.value
      };

      // 注入附加的参数
      try {
        merge(params, additionParams);
      } catch (error) {
        console.log(error)
      }
      // 判断加载提示
      
      // 处理URL
      let url = '/ppm/api/v2/built-in-system-ppm/pmgf/get/milepost';
      // 替换url中的变量
      
      // 排除空参数  日期组件重置后的空参数是[null] 或者[undefined]
      Object.keys(params).forEach(key=>{ if(params[key] === null){ delete params[key] }else if( Object.prototype.toString.call(params[key]) === '[object Object]' ){ Object.keys(params[key]).forEach(childKey=>{ if(params[key][childKey] === null || (Array.isArray(params[key][childKey]) && params[key][childKey].length === 1 && isNullOrUnDef(params[key][childKey]?.[0]))){ delete params[key][childKey] }}) } });
      return post(url, params).then(async (resp) => {
        dataConnector_conn_72zyv6c8rc_response.value = resp;
        
        return resp;
      }).catch(async (e) => {
        
        
        return Promise.reject(e);
      }).finally(async () => {
        
        
      })
    }
    
      return await exec()
    
}
  

// 页面数据 获取平台项目代号下拉框列表
const dataConnector_conn_hfn6dgc5fw_response = ref();
const dataConnector_conn_hfn6dgc5fw = async (additionParams = {}) => {
    const exec = async () => {
      
      // 获取参数
      const params = {
        projectType: dataConnector_conn_bhznyt7efn_response?.value?.data?.projectType,
      projectName: dataConnector_conn_bhznyt7efn_response?.value?.data?.projectName
      };

      // 注入附加的参数
      try {
        merge(params, additionParams);
      } catch (error) {
        console.log(error)
      }
      // 判断加载提示
      
      // 处理URL
      let url = '/ppm/api/v2/built-in-system-ppm/pmgf/get/platformProjectCodes';
      // 替换url中的变量
      
      // 排除空参数  日期组件重置后的空参数是[null] 或者[undefined]
      Object.keys(params).forEach(key=>{ if(params[key] === null){ delete params[key] }else if( Object.prototype.toString.call(params[key]) === '[object Object]' ){ Object.keys(params[key]).forEach(childKey=>{ if(params[key][childKey] === null || (Array.isArray(params[key][childKey]) && params[key][childKey].length === 1 && isNullOrUnDef(params[key][childKey]?.[0]))){ delete params[key][childKey] }}) } });
      return post(url, params).then(async (resp) => {
        dataConnector_conn_hfn6dgc5fw_response.value = resp;
        
        return resp;
      }).catch(async (e) => {
        
        
        return Promise.reject(e);
      }).finally(async () => {
        
        
      })
    }
    
      return await exec()
    
}
  

// 页面数据 获取平台或交付的任务下拉框列表
const dataConnector_conn_zpy8m42y4z_response = ref();
const dataConnector_conn_zpy8m42y4z = async (additionParams = {}) => {
    const exec = async () => {
      
      // 获取参数
      const params = {
        milepostId: vid_wm7lfb1b23_props?.selected.value
      };

      // 注入附加的参数
      try {
        merge(params, additionParams);
      } catch (error) {
        console.log(error)
      }
      // 判断加载提示
      
      // 处理URL
      let url = '/ppm/api/v2/built-in-system-ppm/pmgf/get/platformTask';
      // 替换url中的变量
      
      // 排除空参数  日期组件重置后的空参数是[null] 或者[undefined]
      Object.keys(params).forEach(key=>{ if(params[key] === null){ delete params[key] }else if( Object.prototype.toString.call(params[key]) === '[object Object]' ){ Object.keys(params[key]).forEach(childKey=>{ if(params[key][childKey] === null || (Array.isArray(params[key][childKey]) && params[key][childKey].length === 1 && isNullOrUnDef(params[key][childKey]?.[0]))){ delete params[key][childKey] }}) } });
      return post(url, params).then(async (resp) => {
        dataConnector_conn_zpy8m42y4z_response.value = resp;
        
        return resp;
      }).catch(async (e) => {
        
        
        return Promise.reject(e);
      }).finally(async () => {
        
        
      })
    }
    
      return await exec()
    
}
  

// 页面数据 修改任务权重分数
const dataConnector_conn_uqxcrk07yu_response = ref();
const dataConnector_conn_uqxcrk07yu = async (additionParams = {}) => {
    const exec = async () => {
      
      // 获取参数
      const params = {
        modifiedTime: null,
      taskPerformanceWeight: n_hsun225haw.s_t7ntcgo1t8,
      modifiedById: null,
      modifiedBy: null,
      id: vid_1pgbsy9bqc_props?.currentRow.id
      };

      // 注入附加的参数
      try {
        merge(params, additionParams);
      } catch (error) {
        console.log(error)
      }
      // 判断加载提示
      
      // 处理URL
      let url = '/ppm/api/v2/built-in-system-ppm/pmgf/update/relatedTaskScore';
      // 替换url中的变量
      
      // 排除空参数  日期组件重置后的空参数是[null] 或者[undefined]
      Object.keys(params).forEach(key=>{ if(params[key] === null){ delete params[key] }else if( Object.prototype.toString.call(params[key]) === '[object Object]' ){ Object.keys(params[key]).forEach(childKey=>{ if(params[key][childKey] === null || (Array.isArray(params[key][childKey]) && params[key][childKey].length === 1 && isNullOrUnDef(params[key][childKey]?.[0]))){ delete params[key][childKey] }}) } });
      return post(url, params).then(async (resp) => {
        dataConnector_conn_uqxcrk07yu_response.value = resp;
        
        return resp;
      }).catch(async (e) => {
        
        
        return Promise.reject(e);
      }).finally(async () => {
        
        
      })
    }
    
      return await exec()
    
}
  
/* ========================== 页面数据 ========================== */
  

  /* -------------------------- 响应 -------------------------- */

// 页面交互 项目月度目标管理
const response_bp3jybkxj8 = async () => {
  
const openMode = 'current';
const query = {

};
const jumpInfo = {
  path: '/app_50000005/page/50001636', // 跳转地址
  query
};
const routeUrl = router.resolve(jumpInfo);
let url = routeUrl.href;
// 判断是否是MicroApp的子应用
const microAppData = window.__MICRO_APP_ENVIRONMENT__;
if (microAppData) {
  const urlList = []
  Object.keys(jumpInfo.query).forEach(item=>{
    const urlItem = item + '=' + jumpInfo.query[item];
    urlList.push(urlItem);
  })
  // 判断要跳转的地址是否是用户自定义输入的
  const customJumpPath = 'PAGE_LIST' === 'CUSTOM_PAGE' ? jumpInfo.query.iframe_url : jumpInfo.path;
  // 自定义跳转页面不是其他平台的菜单，则直接使用全路径
  if('PAGE_LIST' === 'CUSTOM_PAGE' && customJumpPath.indexOf('/allin-app/') === -1) {
    url = jumpInfo.query.iframe_url + '?' + urlList.join("&");
  } else if (customJumpPath.indexOf('/allin-app/') !== -1) {
    // 目标页面是其他平台的菜单
    let jumpPath = customJumpPath.substring(customJumpPath.indexOf('/allin-app/'));
    // 配置有参数，需要加参数添加到路由后面
    if(urlList.length) {
      // 跳转的路径本身带有参数
      if(jumpPath.indexOf('?') !== -1) {
        jumpPath += '&' + urlList.join("&");
      } else {
        jumpPath += '?'+ urlList.join("&");
      }
    }
    url = location.origin + jumpPath;
  } else {
    // 目标页面就是低代码项目本身的页面
    url = location.origin + '/allin-app'+ customJumpPath;
  }
}
// 新窗口
if (openMode === 'new') {
  window.open(url, '_blank');
} else if(openMode === 'iframe') {
  _props.src = url;
} else {
  if (microAppData) {
    window.location.href = url;
  } else {
    router.push(jumpInfo);
  }
}

  
}
  

// 页面交互 关联任务交互
const response_v93nhy68eb = async () => {
  
const branchList = [{
      conditionType: 'EQUALS',
      value: 200,
      exec: async () => {
          vid_ccvzbp0bky_props.show = true;
vid_8sju2q3nnc_props.visible = false;
  // 这里组件可能还未初始化， 这里使用可选链的形式进行函数触发
try {
await vid_129vkc56h0_ref.value?.resetFields();
} catch (error) { console.log(error);}
  // 这里组件可能还未初始化， 这里使用可选链的形式进行函数触发
vid_i5jb7e1opg_ref.value?.reset();
await dataConnector_conn_bhznyt7efn()
      }
  },{
      conditionType: 'NOT_EQUALS',
      value: 200,
      exec: async () => {
          vid_3ebfkxi9c8_props.show = true;
      }
  }];

const matchBranch = branchList.find(item => checkCaseCondition(dataConnector_conn_q1hyx7sb9j_response?.value?.code, item.conditionType, item.value));
// 匹配到的分支
if (matchBranch) {
  matchBranch.exec();
  return;
}
// 默认分支动作

  
}
  

// 页面交互 解除关联
const response_842im823k9 = async () => {
  
const branchList = [{
      conditionType: 'EQUALS',
      value: 200,
      exec: async () => {
          vid_8jh57b3x2n_props.show = true;
      }
  },{
      conditionType: 'NOT_EQUALS',
      value: 200,
      exec: async () => {
          vid_ap4b0k5n98_props.show = true;
      }
  }];

const matchBranch = branchList.find(item => checkCaseCondition(dataConnector_conn_h387uj3n4a_response?.value?.code, item.conditionType, item.value));
// 匹配到的分支
if (matchBranch) {
  matchBranch.exec();
  return;
}
// 默认分支动作

  
}
  

// 页面交互 任务权重修改
const response_8vye721t1s = async () => {
  
const branchList = [{
      conditionType: 'EQUALS',
      value: 200,
      exec: async () => {
          vid_o430gle6b6_props.show = true;
      }
  },{
      conditionType: 'NOT_EQUALS',
      value: 200,
      exec: async () => {
          vid_466kjipu9q_props.show = true;
      }
  }];

const matchBranch = branchList.find(item => checkCaseCondition(dataConnector_conn_uqxcrk07yu_response?.value?.code, item.conditionType, item.value));
// 匹配到的分支
if (matchBranch) {
  matchBranch.exec();
  return;
}
// 默认分支动作

  
}
  

// 页面交互 导入任务界面
const response_cwej1o918k = async () => {
  
const openMode = 'current';
const query = {
  id: pageParameter_state.id
};
const jumpInfo = {
  path: '/app_50000005/page/50001759', // 跳转地址
  query
};
const routeUrl = router.resolve(jumpInfo);
let url = routeUrl.href;
// 判断是否是MicroApp的子应用
const microAppData = window.__MICRO_APP_ENVIRONMENT__;
if (microAppData) {
  const urlList = []
  Object.keys(jumpInfo.query).forEach(item=>{
    const urlItem = item + '=' + jumpInfo.query[item];
    urlList.push(urlItem);
  })
  // 判断要跳转的地址是否是用户自定义输入的
  const customJumpPath = 'PAGE_LIST' === 'CUSTOM_PAGE' ? jumpInfo.query.iframe_url : jumpInfo.path;
  // 自定义跳转页面不是其他平台的菜单，则直接使用全路径
  if('PAGE_LIST' === 'CUSTOM_PAGE' && customJumpPath.indexOf('/allin-app/') === -1) {
    url = jumpInfo.query.iframe_url + '?' + urlList.join("&");
  } else if (customJumpPath.indexOf('/allin-app/') !== -1) {
    // 目标页面是其他平台的菜单
    let jumpPath = customJumpPath.substring(customJumpPath.indexOf('/allin-app/'));
    // 配置有参数，需要加参数添加到路由后面
    if(urlList.length) {
      // 跳转的路径本身带有参数
      if(jumpPath.indexOf('?') !== -1) {
        jumpPath += '&' + urlList.join("&");
      } else {
        jumpPath += '?'+ urlList.join("&");
      }
    }
    url = location.origin + jumpPath;
  } else {
    // 目标页面就是低代码项目本身的页面
    url = location.origin + '/allin-app'+ customJumpPath;
  }
}
// 新窗口
if (openMode === 'new') {
  window.open(url, '_blank');
} else if(openMode === 'iframe') {
  _props.src = url;
} else {
  if (microAppData) {
    window.location.href = url;
  } else {
    router.push(jumpInfo);
  }
}

  
}
  
/* ========================== 响应 ========================== */
  

  /* -------------------------- 函数 -------------------------- */

/* ========================== 函数 ========================== */
  

  /* -------------------------- 页面参数 -------------------------- */

const pageParameter_state = reactive({
    'processInstanceId': props.processInstanceId,
  'id': undefined,
})
    
/* ========================== 页面参数 ========================== */
  

  /* -------------------------- 组件事件处理方法 -------------------------- */

// ---------------------------- 组件数据同步 ----------------------------
// 处理 关联任务失败_o4p7e4ic9x 的 content 属性关联
watch(() => dataConnector_conn_q1hyx7sb9j_response?.value?.message,
() => { vid_3ebfkxi9c8_props.content = dataConnector_conn_q1hyx7sb9j_response?.value?.message; },
{deep: true})
// 处理 取消关联失败_fn4swjfpsz 的 content 属性关联
watch(() => dataConnector_conn_h387uj3n4a_response?.value?.message,
() => { vid_ap4b0k5n98_props.content = dataConnector_conn_h387uj3n4a_response?.value?.message; },
{deep: true})
// 处理 projectName下拉框_egvxgxh5an 的 systemList 属性关联
watch(() => dataConnector_conn_hfn6dgc5fw_response?.value?.data?.projectCodeDtoList,
() => { vid_pxmznuc4ce_options_raw.value = dataConnector_conn_hfn6dgc5fw_response?.value?.data?.projectCodeDtoList; },
{deep: true})
// 处理 milepost下拉框_2hsacd8xyz 的 systemList 属性关联
watch(() => dataConnector_conn_72zyv6c8rc_response?.value?.data?.milepostDtoList,
() => { vid_wm7lfb1b23_options_raw.value = dataConnector_conn_72zyv6c8rc_response?.value?.data?.milepostDtoList; },
{deep: true})
// 处理 下拉框_0t5kp8qsek 的 systemList 属性关联
watch(() => dataConnector_conn_zpy8m42y4z_response?.value?.data?.taskDtoList,
() => { vid_4cik2gcicw_options_raw.value = dataConnector_conn_zpy8m42y4z_response?.value?.data?.taskDtoList; },
{deep: true})
// 处理 简单文本_tk16t366e7 的 rt_text 属性关联
watch(() => dataConnector_conn_bhznyt7efn_response?.value?.data?.goalWeight,
() => { vid_2rtb2yalkx_props.rt_text = dataConnector_conn_bhznyt7efn_response?.value?.data?.goalWeight; },
{deep: true})
// 处理 40 的 rt_text 属性关联
watch(() => dataConnector_conn_bhznyt7efn_response?.value?.data?.currentTaskTotalScore,
() => { vid_5es2voho56_props.rt_text = dataConnector_conn_bhznyt7efn_response?.value?.data?.currentTaskTotalScore; },
{deep: true})
// 处理 月度目标：文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本 的 rt_text 属性关联
watch(() => dataConnector_conn_bhznyt7efn_response?.value?.data?.projectMonthlyGoal,
() => { vid_54rxr313xf_props.rt_text = dataConnector_conn_bhznyt7efn_response?.value?.data?.projectMonthlyGoal; },
{deep: true})
// 处理 表格_nzz0wm54q6 的 systemList 属性关联
watch(() => dataConnector_conn_bhznyt7efn_response?.value?.data?.goalLinkedTasksDtoList,
() => { vid_1pgbsy9bqc_options_raw.value = dataConnector_conn_bhznyt7efn_response?.value?.data?.goalLinkedTasksDtoList; },
{deep: true})
// ============================ 组件数据同步 ============================
  
/**
* 处理元素 对话框 的 cancel 事件
*/
let handle_vid_7skj30giwx_cancel = throttle(async (...params) => {
vid_7skj30giwx_props.visible = false;
// 这里组件可能还未初始化， 这里使用可选链的形式进行函数触发
try {
await vid_f34g16po1t_ref.value?.resetFields();
} catch (error) { console.log(error);}
}, 500)
/**
* 处理元素 对话框 的 ok 事件
*/
let handle_vid_7skj30giwx_ok = throttle(async (...params) => {
// 这里组件可能还未初始化， 这里使用可选链的形式进行函数触发
await vid_f34g16po1t_ref.value?.validate();
await dataConnector_conn_uqxcrk07yu()
vid_7skj30giwx_props.visible = false;
// 这里组件可能还未初始化， 这里使用可选链的形式进行函数触发
try {
await vid_f34g16po1t_ref.value?.resetFields();
} catch (error) { console.log(error);}
response_8vye721t1s()
await dataConnector_conn_bhznyt7efn()
}, 500)
/**
* 处理元素 对话框 的 cancel 事件
*/
let handle_vid_g0ud1d3twj_cancel = throttle(async (...params) => {
vid_g0ud1d3twj_props.visible = false;
}, 500)
/**
* 处理元素 对话框 的 ok 事件
*/
let handle_vid_g0ud1d3twj_ok = throttle(async (...params) => {
await dataConnector_conn_h387uj3n4a()
vid_g0ud1d3twj_props.visible = false;
response_842im823k9()
await dataConnector_conn_bhznyt7efn()
}, 500)
/**
* 处理元素 对话框 的 cancel 事件
*/
let handle_vid_8sju2q3nnc_cancel = throttle(async (...params) => {
vid_8sju2q3nnc_props.visible = false;
// 这里组件可能还未初始化， 这里使用可选链的形式进行函数触发
try {
await vid_129vkc56h0_ref.value?.resetFields();
} catch (error) { console.log(error);}
// 这里组件可能还未初始化， 这里使用可选链的形式进行函数触发
vid_i5jb7e1opg_ref.value?.reset();
}, 500)
/**
* 处理元素 对话框 的 ok 事件
*/
let handle_vid_8sju2q3nnc_ok = throttle(async (...params) => {
// 这里组件可能还未初始化， 这里使用可选链的形式进行函数触发
await vid_129vkc56h0_ref.value?.validate();
await dataConnector_conn_q1hyx7sb9j()
response_v93nhy68eb()
await dataConnector_conn_bhznyt7efn()
}, 500)
/**
* 处理元素 下拉框 的 change 事件
*/
let handle_vid_2oqzyg58en_change = throttle(async (...params) => {
const [,option] = params;
vid_2oqzyg58en_props.selected.label = option?.label;
vid_2oqzyg58en_props.selected.value = option?.value;
vid_2oqzyg58en_props.selected.option = option;
}, 500)
/**
* 处理元素 下拉框 的 search 事件
*/
let handle_vid_2oqzyg58en_search = throttle(async (...params) => {
const [searchValue] = params;
vid_2oqzyg58en_props.searchValue = searchValue;
}, 500)
/**
* 处理元素 下拉框 的 change 事件
*/
let handle_vid_st1r27s90r_change = throttle(async (...params) => {
const [,option] = params;
vid_st1r27s90r_props.selected.label = option?.label;
vid_st1r27s90r_props.selected.value = option?.value;
vid_st1r27s90r_props.selected.option = option;
}, 500)
/**
* 处理元素 下拉框 的 search 事件
*/
let handle_vid_st1r27s90r_search = throttle(async (...params) => {
const [searchValue] = params;
vid_st1r27s90r_props.searchValue = searchValue;
}, 500)
/**
* 处理元素 下拉框 的 change 事件
*/
let handle_vid_fsrhnl2ebb_change = throttle(async (...params) => {
const [,option] = params;
vid_fsrhnl2ebb_props.selected.label = option?.label;
vid_fsrhnl2ebb_props.selected.value = option?.value;
vid_fsrhnl2ebb_props.selected.option = option;
}, 500)
/**
* 处理元素 下拉框 的 search 事件
*/
let handle_vid_fsrhnl2ebb_search = throttle(async (...params) => {
const [searchValue] = params;
vid_fsrhnl2ebb_props.searchValue = searchValue;
}, 500)
/**
* 处理元素 下拉框 的 focus 事件
*/
let handle_vid_pxmznuc4ce_focus = throttle(async (...params) => {
await dataConnector_conn_hfn6dgc5fw()
}, 500)
/**
* 处理元素 下拉框 的 change 事件
*/
let handle_vid_pxmznuc4ce_change = throttle(async (...params) => {
const [,option] = params;
vid_pxmznuc4ce_props.selected.label = option?.label;
vid_pxmznuc4ce_props.selected.value = option?.value;
vid_pxmznuc4ce_props.selected.option = option;
}, 500)
/**
* 处理元素 下拉框 的 search 事件
*/
let handle_vid_pxmznuc4ce_search = throttle(async (...params) => {
const [searchValue] = params;
vid_pxmznuc4ce_props.searchValue = searchValue;
}, 500)
/**
* 处理元素 下拉框 的 focus 事件
*/
let handle_vid_wm7lfb1b23_focus = throttle(async (...params) => {
await dataConnector_conn_72zyv6c8rc()
}, 500)
/**
* 处理元素 下拉框 的 change 事件
*/
let handle_vid_wm7lfb1b23_change = throttle(async (...params) => {
const [,option] = params;
vid_wm7lfb1b23_props.selected.label = option?.label;
vid_wm7lfb1b23_props.selected.value = option?.value;
vid_wm7lfb1b23_props.selected.option = option;
}, 500)
/**
* 处理元素 下拉框 的 search 事件
*/
let handle_vid_wm7lfb1b23_search = throttle(async (...params) => {
const [searchValue] = params;
vid_wm7lfb1b23_props.searchValue = searchValue;
}, 500)
/**
* 处理元素 下拉框 的 focus 事件
*/
let handle_vid_4cik2gcicw_focus = throttle(async (...params) => {
await dataConnector_conn_zpy8m42y4z()
}, 500)
/**
* 处理元素 下拉框 的 change 事件
*/
let handle_vid_4cik2gcicw_change = throttle(async (...params) => {
const [,option] = params;
vid_4cik2gcicw_props.selected.label = option?.label;
vid_4cik2gcicw_props.selected.value = option?.value;
vid_4cik2gcicw_props.selected.option = option;
}, 500)
/**
* 处理元素 下拉框 的 search 事件
*/
let handle_vid_4cik2gcicw_search = throttle(async (...params) => {
const [searchValue] = params;
vid_4cik2gcicw_props.searchValue = searchValue;
}, 500)
/**
* 处理元素 面包屑 的 click 事件
*/
let handle_vid_72tpnta5ol_click = throttle(async (...params) => {
response_bp3jybkxj8()
}, 500)
/**
* 处理元素 按钮 的 click 事件
*/
let handle_vid_5anl8ulhn3_click = throttle(async (...params) => {
vid_8sju2q3nnc_props.visible = true;
}, 500)
/**
* 处理元素 按钮 的 click 事件
*/
let handle_vid_qesp4irx4y_click = throttle(async (...params) => {
response_cwej1o918k()
}, 500)
/**
* 处理元素 表格 的 clickBtn_40zfwb3kea 事件
*/
let handle_vid_1pgbsy9bqc_clickBtn_40zfwb3kea = throttle(async (...params) => {
// 存储表格当前行数据
const [record] = params;
vid_1pgbsy9bqc_props.currentRow = record;
vid_g0ud1d3twj_props.visible = true;
}, 500)
/**
* 处理元素 表格 的 clickBtn_agyda2glki 事件
*/
let handle_vid_1pgbsy9bqc_clickBtn_agyda2glki = throttle(async (...params) => {
// 存储表格当前行数据
const [record] = params;
vid_1pgbsy9bqc_props.currentRow = record;
vid_7skj30giwx_props.visible = true;
}, 500)
/**
* 处理元素 表格 的 change 事件
*/
let handle_vid_1pgbsy9bqc_change = throttle(async (...params) => {
// 处理分页器相关数据
const [pagination, filters, sorter] = params;
const { current, pageSize } = pagination;
vid_1pgbsy9bqc_props.rt_tableConfig.pagination.current = current;
vid_1pgbsy9bqc_props.rt_tableConfig.pagination.pageSize = pageSize;
// 处理排序相关数据
const { field, order } = sorter;
const sorterList = [...vid_1pgbsy9bqc_props.rowMergeSort];
let sorterValue = {};
if (order === 'descend') {
sorterValue = { order: field, direction: 'DESC' }
} else if (order === 'ascend') {
sorterValue = { order: field, direction: 'ASC' }
}
sorterList.push(sorterValue);
vid_1pgbsy9bqc_props.systemSort = sorterList;
vid_1pgbsy9bqc_props.sorter = sorterValue;
}, 500)
/**
* 处理元素 表格 的 clickBtn_d3xdlj1wgk 事件
*/
let handle_vid_1pgbsy9bqc_clickBtn_d3xdlj1wgk = throttle(async (...params) => {
// 存储表格当前行数据
const [record] = params;
vid_1pgbsy9bqc_props.currentRow = record;
}, 500)
/**
* 处理元素 表格 的 clickBtn_fa585vdazi 事件
*/
let handle_vid_1pgbsy9bqc_clickBtn_fa585vdazi = throttle(async (...params) => {
// 存储表格当前行数据
const [record] = params;
vid_1pgbsy9bqc_props.currentRow = record;
}, 500)
/**
* 处理元素 表格 的 clickBtn_xrhah7ybpr 事件
*/
let handle_vid_1pgbsy9bqc_clickBtn_xrhah7ybpr = throttle(async (...params) => {
// 存储表格当前行数据
const [record] = params;
vid_1pgbsy9bqc_props.currentRow = record;
}, 500)
/* ========================== 组件事件处理方法 ========================== */
  

  /* -------------------------- 生命周期 -------------------------- */
onMounted(() => {
    const pageParams = [{"name":"id","dataType":"STRING","dependencies":[{"sourceType":"dataConnector","propertyChain":"id","dataConnector":{"vid":"conn_bhznyt7efn","type":"request","paramLink":"projectMonthlyGoalManagementId"}},{"sourceType":"dataConnector","propertyChain":"id","dataConnector":{"vid":"conn_q1hyx7sb9j","type":"request","paramLink":"projectMonthlyGoalManagementId"}},{"sourceType":"responseTargetPage","propertyChain":"id","responseTargetPage":{"id":"cwej1o918k","key":"id"}}]}];
  const strategyMap = {
    STRING: (param, paramValue) => {
      pageParameter_state[param.name] = paramValue;
    },
    BOOLEAN: (param, paramValue) => {
      if('true' === (paramValue || '').toLowerCase()) {
        pageParameter_state[param.name] = true
      } else if('false' === (paramValue || '').toLowerCase()) {
        pageParameter_state[param.name] = false
      } else {
        message.error('参数传入错误！类型不匹配！');
      }
    },
    NUMBER: (param, paramValue) => {
      if (!isNaN(paramValue)) {
        pageParameter_state[param.name] = Number(paramValue);
      } else {
        message.error('参数传入错误！类型不匹配！');
      }
    },
    ARRAY: (param, paramValue) => {
      if (isNullOrUnDef(paramValue)  || !paramValue || paramValue=== 'undefined') {
        pageParameter_state[param.name] = [];
      } else if(paramValue.trim().startsWith('[') && paramValue.trim().endsWith(']')) {
        try {
          pageParameter_state[param.name] = JSON.parse(decodeURI(paramValue));
        } catch (error) {
          console.error('参数解析失败 ',error);
          message.error('参数解析失败 ',error);
        }
      } else {
        console.error('参数传入错误！类型不匹配！');
        message.error('参数传入错误！类型不匹配！');
      }
    },
  };
  pageParams.forEach((param) => {
    strategyMap[param.dataType](param, route.query[param.name]);
  });
  dataConnector_conn_bhznyt7efn()
  
});

onUnmounted(() => {
  // 销毁定时器
  setTimeOutList.forEach(({ repeat, timer }) => {
    repeat ?  clearInterval(timer): clearTimeout(timer);
  });
});
  
/* ========================== 生命周期 ========================== */
  

  /* -------------------------- 数据关联处理 -------------------------- */

  // 处理 关联任务成功_nwkzss8m6s 全局消息
    immediateWatch(
        () => vid_ccvzbp0bky_props.show,
        () => {
            if (vid_ccvzbp0bky_props.show) {
                message[vid_ccvzbp0bky_props.type](vid_ccvzbp0bky_props.content, vid_ccvzbp0bky_props.duration, () => {
                    vid_ccvzbp0bky_props.show = false
                })
            }
        }
    )
// 处理 关联任务失败_o4p7e4ic9x 全局消息
    immediateWatch(
        () => vid_3ebfkxi9c8_props.show,
        () => {
            if (vid_3ebfkxi9c8_props.show) {
                message[vid_3ebfkxi9c8_props.type](vid_3ebfkxi9c8_props.content, vid_3ebfkxi9c8_props.duration, () => {
                    vid_3ebfkxi9c8_props.show = false
                })
            }
        }
    )
// 处理 取消关联成功_1wehkbl10n 全局消息
    immediateWatch(
        () => vid_8jh57b3x2n_props.show,
        () => {
            if (vid_8jh57b3x2n_props.show) {
                message[vid_8jh57b3x2n_props.type](vid_8jh57b3x2n_props.content, vid_8jh57b3x2n_props.duration, () => {
                    vid_8jh57b3x2n_props.show = false
                })
            }
        }
    )
// 处理 取消关联失败_fn4swjfpsz 全局消息
    immediateWatch(
        () => vid_ap4b0k5n98_props.show,
        () => {
            if (vid_ap4b0k5n98_props.show) {
                message[vid_ap4b0k5n98_props.type](vid_ap4b0k5n98_props.content, vid_ap4b0k5n98_props.duration, () => {
                    vid_ap4b0k5n98_props.show = false
                })
            }
        }
    )
// 处理 修改任务权重成功_p4lvu0266c 全局消息
    immediateWatch(
        () => vid_o430gle6b6_props.show,
        () => {
            if (vid_o430gle6b6_props.show) {
                message[vid_o430gle6b6_props.type](vid_o430gle6b6_props.content, vid_o430gle6b6_props.duration, () => {
                    vid_o430gle6b6_props.show = false
                })
            }
        }
    )
// 处理 修改任务权重失败_4lq1u8zvxt 全局消息
    immediateWatch(
        () => vid_466kjipu9q_props.show,
        () => {
            if (vid_466kjipu9q_props.show) {
                message[vid_466kjipu9q_props.type](vid_466kjipu9q_props.content, vid_466kjipu9q_props.duration, () => {
                    vid_466kjipu9q_props.show = false
                })
            }
        }
    )
  
  

  /* -------------------------- 表单数据同步 -------------------------- */
/* ========================== 表单数据同步 ========================== */
  
/* ========================== 数据关联处理 ========================== */
  

  /* -------------------------- 不同组件自定义的处理逻辑 -------------------------- */
immediateWatch(
() => r_jf7qfxldqo?.p_0auuvgns9c,
() => {
  if(!!handle_vid_2oqzyg58en_change) {
  const options = (vid_2oqzyg58en_options?.value() || []).find((item) => item.value === r_jf7qfxldqo?.p_0auuvgns9c || item.label === r_jf7qfxldqo?.p_0auuvgns9c )
    // 重置了表单，这里重置下拉框
    handle_vid_2oqzyg58en_change(r_jf7qfxldqo?.p_0auuvgns9c, {...options} || {})
  }
}
)
immediateWatch(
() => r_jf7qfxldqo?.y_r921w1nh7c,
() => {
  if(!!handle_vid_st1r27s90r_change) {
  const options = (vid_st1r27s90r_options?.value() || []).find((item) => item.value === r_jf7qfxldqo?.y_r921w1nh7c || item.label === r_jf7qfxldqo?.y_r921w1nh7c )
    // 重置了表单，这里重置下拉框
    handle_vid_st1r27s90r_change(r_jf7qfxldqo?.y_r921w1nh7c, {...options} || {})
  }
}
)
immediateWatch(
() => r_jf7qfxldqo?.w_7zdko87mkj,
() => {
  if(!!handle_vid_fsrhnl2ebb_change) {
  const options = (vid_fsrhnl2ebb_options?.value() || []).find((item) => item.value === r_jf7qfxldqo?.w_7zdko87mkj || item.label === r_jf7qfxldqo?.w_7zdko87mkj )
    // 重置了表单，这里重置下拉框
    handle_vid_fsrhnl2ebb_change(r_jf7qfxldqo?.w_7zdko87mkj, {...options} || {})
  }
}
)
immediateWatch(
() => m_ofmir5ykno?.projectCode,
() => {
  if(!!handle_vid_pxmznuc4ce_change) {
  const options = (vid_pxmznuc4ce_options?.value() || []).find((item) => item.value === m_ofmir5ykno?.projectCode || item.label === m_ofmir5ykno?.projectCode )
    // 重置了表单，这里重置下拉框
    handle_vid_pxmznuc4ce_change(m_ofmir5ykno?.projectCode, {...options} || {})
  }
}
)
immediateWatch(
() => m_ofmir5ykno?.projectPhase,
() => {
  if(!!handle_vid_wm7lfb1b23_change) {
  const options = (vid_wm7lfb1b23_options?.value() || []).find((item) => item.value === m_ofmir5ykno?.projectPhase || item.label === m_ofmir5ykno?.projectPhase )
    // 重置了表单，这里重置下拉框
    handle_vid_wm7lfb1b23_change(m_ofmir5ykno?.projectPhase, {...options} || {})
  }
}
)
immediateWatch(
() => m_ofmir5ykno?.taskId,
() => {
  if(!!handle_vid_4cik2gcicw_change) {
  const options = (vid_4cik2gcicw_options?.value() || []).find((item) => item.value === m_ofmir5ykno?.taskId || item.label === m_ofmir5ykno?.taskId )
    // 重置了表单，这里重置下拉框
    handle_vid_4cik2gcicw_change(m_ofmir5ykno?.taskId, {...options} || {})
  }
}
)
const vid_72tpnta5ol_props_tabConfig = computed(() => {
const initValue = [{"key":"tab1","title":"项目月度目标管理","targetPage":{"settingType":"PAGE_LIST","url":"/app_50000005/page/50001636","customUrl":"","modelId":50001636},"icon":"","parameter":[],"applicationId":50000005,"query":{}},{"key":"tab2","title":"关联任务","icon":"","targetPage":{"settingType":"PAGE_LIST","url":"/app_50000005/page/50001641","customUrl":"","modelId":50001641},"parameter":[{"name":"id","dataType":"STRING","dependencies":[{"sourceType":"dataConnector","propertyChain":"id","dataConnector":{"vid":"conn_bhznyt7efn","type":"request","paramLink":"projectMonthlyGoalManagementId"}},{"sourceType":"dataConnector","propertyChain":"id","dataConnector":{"vid":"conn_q1hyx7sb9j","type":"request","paramLink":"projectMonthlyGoalManagementId"}},{"sourceType":"responseTargetPage","propertyChain":"id","responseTargetPage":{"id":"cwej1o918k","key":"id"}}],"value":"","type":"value","bindingValue":{"type":"value","dataType":"STRING","link":"","value":""}}],"applicationId":50000005,"query":{"id":""}}];
return initValue;
})
// 生成表格列：相同分组的数据需要合并单元格
const vid_1pgbsy9bqc_columns = computed(() => {
// 需要合并单元格的列
const groupKeys = [];
const rawColumnList =[...vid_1pgbsy9bqc_props.columnList];
/*** PUBLISH_EXEGESIS ***
// 获取缓存的表格列宽度，处理列宽信息
UserTableRecords.getTableRecords(localGet('al__UID')).then((res) => {
  const columnWidthMap = res['vid_1pgbsy9bqc'] ?? {};
  rawColumnList.map((column) => {
    if(columnWidthMap[column.dataIndex]) {
      column.width = columnWidthMap[column.dataIndex]
    }
  })
});
*** PUBLISH_EXEGESIS ***/
// 将表头配置按照groupTitle字段进行分组，以实现多级表头
const columnList = generatorGroupedColumnList(rawColumnList);

function formatColumns(columnList) {
  columnList.forEach(item => {
    const { dataIndex, contentAlign, children, customCellStyle } = item;
    // 如果当前列是分组列，则递归处理它的子列，当前列本身不作处理
    if (!dataIndex && children && children.length) {
      formatColumns(children);
      return;
    }

    const groupIndex = groupKeys.findIndex(item => item === dataIndex);
    // 如果当前字段属于分组字段，则给它添加合并单元格的配置，否则直接返回
    if (groupIndex === -1) {
      item.customCell = (record, index) => {
        return { style: { 'text-align': contentAlign, ...(customCellStyle || {}) } };
      };
    } else {
      item.customCell = (record, index) => {
        const rowGroupKeys = groupKeys.slice(0, groupIndex + 1);
        const rowSpanList = generateRowSpanList(vid_1pgbsy9bqc_options.value(), rowGroupKeys,vid_1pgbsy9bqc_props.editRecordMap);
        return { rowSpan: rowSpanList[index], style: { 'text-align': contentAlign, ...(customCellStyle || {}) } };
      };
    }
  })
}

// 格式化column：增加合并单元格的配置，以及自定义样式
formatColumns(columnList);

return columnList;
});


// 表格分页器信息：将总条数信息加到基础分页信息中
const vid_1pgbsy9bqc_pagination = computed(() => {
  const { totalNumber, rt_tableConfig } = vid_1pgbsy9bqc_props;
  const {
    enable = true,
    current= 1,
    pageSize= 10,
    showSizeChanger= false,
    pageSizeOptions= '10,20,30,40',
    showTotal= false,
    showQuickJumper= false,
    simple= false,
    hideOnSinglePage= false,
  } = rt_tableConfig.pagination ?? {};
  const { size = 'default', layout='bottomRight' } = rt_tableConfig?.style?.paginationStyle || {}
  let info = {};
  if(enable) {
    info = {
      total: totalNumber || 0,
      pageSize,
      size,
      simple,
      current,
      showSizeChanger,
      pageSizeOptions: pageSizeOptions.split(','),
      showQuickJumper,
      hideOnSinglePage,
      position: [layout],
    }
    if(showTotal) {
      info.showTotal = (total, range) => `共${total}个项目，第${current}/${Math.ceil(total / pageSize)}页`
    }
    return info;
  }
  return false;
})
/**
* 生成分组字段合并单元格的配置：返回值为一个数字数组，数组里面每一项即为该字段当前行的rowSpan配置
* @param {Array} 表格中的数据
* @param {Array} 当前分组字段的列表，注：为了保证优先级低的字段合并后是优先级高的字段合并后的子集，需要把比该字段优先级高的分组字段按顺序放在该字段前面；例如：所有分组字段列表为['grade', 'age', 'score']，要生成age字段的合并单元格配置，则该参数需要传['grade', 'age']
* @returns {Array} 该字段合并单元格的rowSpan配置，例：[1, 1, 2, 0, 1]
*/
function generateRowSpanList(dataSource, groupKeys,editRecordMap) {
if (!dataSource || !dataSource.length) {
  return [];
}

const rowSpanList = [];

// 判断单元格是否需要合并的临时值：使用表格数据最后一行进行初始化（表格数据的遍历是倒序进行的）
let tempValue = getGroupValue(dataSource[dataSource.length - 1], groupKeys);
// 记录需要合并单元格的数量
let tempValueCount = 0;

// 倒序遍历数组，以保证使用最前面一条数据合并单元格
for (let index = dataSource.length - 1; index >= 0; index--) {
  rowSpanList[index] = 0;
  const groupValue = getGroupValue(dataSource[index], groupKeys);
  // 如果当前行的分组数据跟上一行一致，则将标记数量加一；否则将标记数量的当前值赋给上一条数据，并重置临时值和标记数量
  if(editRecordMap && editRecordMap[index]){ //如果当前行是编辑行
    rowSpanList[index + 1] = tempValueCount;
    tempValue = "";
    tempValueCount=1;
  }
  else if (groupValue === tempValue) {
    tempValueCount++;
  } else {
    rowSpanList[index + 1] = tempValueCount;
    tempValue = groupValue;
    tempValueCount = 1;
  }

  // 遍历到最后一行，将当前的标记数量赋给当前行
  if (index === 0) {
    rowSpanList[index] = tempValueCount;
  }
}

return rowSpanList;
}

/**
* 根据分组字段列表生成当前数据行的分组值
* @param {Object} 当前数据行
* @param {Array} 分组字段列表
* @returns {String} 拼装的当前数据行的分组值，例：record为{ age: 7, grade: '一年级', name: '小赵' }，groupKeys为['grade', 'age']，则拼装后的返回值为'一年级__$__7'
*/
function getGroupValue(record, groupKeys) {
const groupValueList = [];
groupKeys.forEach(groupKey => {
  groupValueList.push(`${record[groupKey]}`);
});

return groupValueList.join('__$__');
}

// 生成过长省略的样式
function textTruncate(width){
if (!width) {
  return {};
}
return {
  whiteSpace: 'nowrap',
  overflow: 'hidden',
  textOverflow: 'ellipsis',
  display: 'block',
  width:  typeof(width) === 'number' ? width + 'px' : width
}
}

/**
* 将列表数据转换成树状数据
* @param {Array} 原始的列表数据
* @param {String|Number} 列表数据的唯一key
* @param {String|Number} 列表数据转成树时的父级id
*/
function convertListToTree(list, key, parentKey) {
const clonedList = cloneDeep(list || []);

// 遍历列表数据，生成树节点的map：key为列表数据的唯一key，value为列表当前行的数据
const treeNodeMap = {};
clonedList.forEach(item => {
  treeNodeMap[item[key]] = item;
});

const treeDataList = [];
clonedList.forEach(item => {
  // 如果当前行数据的父级id不在树节点的map中，则当前数据为根节点数据，将其加入最终树形数据的列表；否则将其放入其父节点数据的children中
  if (!treeNodeMap[item[parentKey]]) {
    treeDataList.push(item);
  } else {
    if (!treeNodeMap[item[parentKey]].children) {
      treeNodeMap[item[parentKey]].children = [];
    }
    treeNodeMap[item[parentKey]].children.push(item);
  }
});

return treeDataList;
}

/**
* 将原始的列配置列表，按照groupTitle的值进行分组，以实现多级表头
* @param rawColumnList 原始的列配置列表
*/
function generatorGroupedColumnList(rawColumnList) {
// 生成分组表头的map：key为分组表头的名称，value为该分组下所有的column配置代码的字符串列表
const groupColumnMap = {};
rawColumnList.forEach((columnItem) => {
  if (!columnItem.groupTitle) {
    return;
  }

  if (!groupColumnMap[columnItem.groupTitle]) {
    groupColumnMap[columnItem.groupTitle] = [];
  }
  groupColumnMap[columnItem.groupTitle].push(columnItem);
});

const columnList = [];
rawColumnList.forEach((columnItem) => {
  const { groupTitle } = columnItem;

  // 如果不存在分组字段，则使用原始的列配置
  if (!groupTitle) {
    columnList.push(columnItem);
    return;
  }

  // 如果存在分组表头，且该分组还没加入到列配置列表，则将其加入列配置列表，并将其从groupColumnMap中删除
  if (groupColumnMap[groupTitle]) {
    columnList.push({
      title: groupTitle,
      children: groupColumnMap[groupTitle],
    });

    delete groupColumnMap[groupTitle];
  }
});

return columnList;
}
/**
* 表格列宽伸缩处理，使用indexedDB缓存伸缩后的列宽度
*/
const handleResizeColumn = (w, col, vid) => {
col.width = w;
/*** PUBLISH_EXEGESIS ***
UserTableRecords.saveTableRecords(col, localGet('al__UID'), vid)
*** PUBLISH_EXEGESIS ***/
}
/* ========================== 不同组件自定义的处理逻辑 ========================== */
  

// ================================定制化逻辑========================================
</script>
<style lang="less" scoped>
  .page_root {
width: 100%;
height: 100%;
overflow: auto;
}
.page_root :deep(.@{ant-prefix}-spin-nested-loading),
.page_root :deep(.@{ant-prefix}-spin-container)
{
  height: 100%;
}
.table-moreBtn_down {
overflow: hidden; white-space: nowrap; text-overflow: ellipsis; width: 100px;
}

.table-moreBtn_menu :deep(.table-moreBtn_menu-item):hover {
background: #ebf1ff;
}

/*  表格树结构样式处理，展开按钮层级增加*/
:deep(.@{ant-prefix}-table-row-expand-icon) {
z-index: 1;
}
/*  表格树结构 由于每个表格项采用自定义组件，使用绝对定位布局，开启树结构导致显示异常，暂时使用层级定位位置 */
:deep(.@{ant-prefix}-table-row-level-1 .ant-table-cell-with-append .cell-wrapper-left) {
left: 15px !important;
width: calc(100% - 15px);
}
:deep(.@{ant-prefix}-table-row-level-2 .ant-table-cell-with-append .cell-wrapper-left) {
left: 30px !important;
width: calc(100% - 30px);
}
:deep(.@{ant-prefix}-table-row-level-3 .ant-table-cell-with-append .cell-wrapper-left) {
left: 45px !important;
width: calc(100% - 45px);
}
:deep(.@{ant-prefix}-table-row-level-4 .ant-table-cell-with-append .cell-wrapper-left) {
left: 60px !important;
width: calc(100% - 60px);
}

/* 穿梭框改变默认样式，为根据组件样式控制左右栏宽度。 */
:deep(.@{ant-prefix}-transfer-list)
{
  height: 100%;
  width: 50%;
}
.vid_8mi6boajj5{
  margin-bottom:0px
}







.vid_8sju2q3nnc{
  overflow-x:auto;
  overflow-y:auto
}
.vid_a8kiv3qd0v{
  max-height:600px;
  overflow-y:scroll
}
.vid_ire2936uld{
  overflow-x:scroll;
  overflow-y:scroll
}
.vid_2oqzyg58en{
  width:100%
}
.vid_st1r27s90r{
  width:100%
}
.vid_fsrhnl2ebb{
  width:100%
}
.vid_nd8uzxmzpd{
  height:1px;
  margin-bottom:16px;
  background-color:rgba(217, 217, 217, 1)
}
.vid_129vkc56h0{
  overflow-x:scroll;
  overflow-y:scroll
}
.vid_pxmznuc4ce{
  width:100%
}
.vid_wm7lfb1b23{
  width:100%
}
.vid_4cik2gcicw{
  width:100%
}
.vid_6o0wxcm1te :deep(input) {
    text-decoration: undefined;
    font-weight: undefined;
    text-align: undefined;
    font-style: undefined;
    cursor: undefined;
  }
.vid_6o0wxcm1te{
  width:100%
}
.vid_04kmbdnqep{
  height:1px;
  margin-bottom:16px;
  background-color:rgba(217, 217, 217, 1)
}
.vid_72tpnta5ol :deep(a) {
    color: undefined;
  }
  :deep(.vid_72tpnta5ol.@{ant-prefix}-breadcrumb) > span:last-child a {
    color: undefined;
    opacity: 0.75;
  }
.vid_2z31bh9h0y{
  height:100%;
  overflow-x:auto;
  overflow-y:auto;
  display:block;
  margin-top:8px;
  padding-right:24px;
  padding-bottom:24px;
  padding-left:24px;
  background-color:rgba(255, 255, 255, 1)
}
.vid_lhp8mlfm29{
  width:100%;
  padding-top:16px
}
.vid_a4j7ai6v1h{
  padding-left:8px;
  font-weight:600;
  font-size:16px;
  line-height:16px;
  border-left-style:solid;
  border-left-width:4px;
  border-left-color:#3875FF
}
.vid_2rtb2yalkx{
  font-weight:600;
  color:rgba(56, 117, 255, 1);
  font-size:18px
}
.vid_5es2voho56{
  font-weight:600;
  color:rgba(255, 0, 0, 1);
  font-size:18px
}
.vid_6h6jjd4ulb{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  flex-wrap:undefined
}
.vid_5anl8ulhn3{
  border-style:solid;
  border-width:1px;
  border-color:#3875FF
}
.vid_qesp4irx4y{
  margin-left:8px;
  border-style:solid;
  border-width:1px;
  border-color:#3875FF
}
.vid_qhjexuuu0s{
  margin-top:16px;
  margin-bottom:16px;
  padding-top:8px;
  padding-right:8px;
  padding-bottom:8px;
  padding-left:8px;
  background-color:rgba(230, 236, 250, 1)
}
.vid_cfl4hoen6j{
  padding-bottom:24px
}
.vid_1pgbsy9bqc :deep(.@{ant-prefix}-table-thead) > tr {
  height: 40px;
}
.vid_1pgbsy9bqc :deep(.@{ant-prefix}-table-thead) > tr > th {
background: #3875FF;
font-size: 14px;
font-family: arial, helvetica, "microsoft yahei";;
font-weight: 600;
color: #FFFFFF;
border-bottom:1px solid #D9D9D9;
padding: 0 24px;
}
.vid_1pgbsy9bqc :deep(.@{ant-prefix}-table.@{ant-prefix}-table-bordered) > .@{ant-prefix}-table-container > .@{ant-prefix}-table-content > table > thead > tr:not(:last-child) > th {
border-bottom:1px solid #D9D9D9;
}
.vid_1pgbsy9bqc :deep(.@{ant-prefix}-table.@{ant-prefix}-table-bordered) > .@{ant-prefix}-table-container > .@{ant-prefix}-table-content > table > thead > tr > th {
border-right:1px solid #D9D9D9;
}
.vid_1pgbsy9bqc :deep(.@{ant-prefix}-table.@{ant-prefix}-table-bordered) > .@{ant-prefix}-table-container {
border-left: none;
}
.vid_1pgbsy9bqc :deep(.@{ant-prefix}-table.@{ant-prefix}-table-bordered) > .@{ant-prefix}-table-container > .@{ant-prefix}-table-content > table > thead > tr > th:first-child {
border-left:1px solid #D9D9D9;
}
.vid_1pgbsy9bqc :deep(.@{ant-prefix}-table.@{ant-prefix}-table-bordered) > .@{ant-prefix}-table-container > .@{ant-prefix}-table-content > table {
border-top:1px solid #D9D9D9;
}
.vid_1pgbsy9bqc :deep(.@{ant-prefix}-table-thead) > tr > th:not(:last-child):not(.@{ant-prefix}-table-selection-column):not(.@{ant-prefix}-table-row-expand-icon-cell):not([colspan])::before {
  background: #D9D9D9;
  width: 1px;
}
.vid_1pgbsy9bqc :deep(.@{ant-prefix}-table-cell-scrollbar) {
  box-shadow: none;
}
.vid_1pgbsy9bqc :deep(.@{ant-prefix}-table-tbody) tr {
height: 40px;
}
.vid_1pgbsy9bqc :deep(.@{ant-prefix}-table-tbody) tr > td {
font-size: 14px;
font-family: arial, helvetica, "microsoft yahei";;
font-weight: 400;
color: #262626;
border-bottom:1px solid #D9D9D9;
padding: 0 24px;
word-break: break-all;
}
.vid_1pgbsy9bqc :deep(.@{ant-prefix}-table-empty .@{ant-prefix}-table-tbody tr > td) {
padding: 0;
}
.vid_1pgbsy9bqc :deep(.@{ant-prefix}-table-tbody) tr > td .@{ant-prefix}-btn {
padding: 0 30px 0 0;
}
.vid_1pgbsy9bqc :deep(.@{ant-prefix}-table-tbody) tr > td .@{ant-prefix}-btn:last-child {
padding: 0;
}
.vid_1pgbsy9bqc :deep(.table-striped-odd) td {
background-color: #FFFFFF;
}
.vid_1pgbsy9bqc :deep(.table-striped-even) td {
background-color: #F8FAFC;
}
.vid_1pgbsy9bqc :deep(.@{ant-prefix}-table.@{ant-prefix}-table-bordered) > .@{ant-prefix}-table-container > .@{ant-prefix}-table-content > table > tbody > tr > td {
border-right:1px solid #D9D9D9;
}
.vid_1pgbsy9bqc :deep(.@{ant-prefix}-table.@{ant-prefix}-table-bordered) > .@{ant-prefix}-table-container > .@{ant-prefix}-table-content > table > tbody > tr > td:first-child {
border-left:1px solid #D9D9D9;
}
.vid_1pgbsy9bqc{
  width:100%
}
</style>